{
 "cells": [
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src=\".\\\\baidu.png\" alt=\"some_text\">\n",
    "<h1> 第二讲 程序设计基础</h1>\n",
    "<a id=backup></a>\n",
    "<H2>目录</H2>  \n",
    "\n",
    "[2.1 程序执行过程](#Section1)  \n",
    "[2.2 程序实例](#Section2)  \n",
    "[2.3 程序的基本结构](#Section3)     \n",
    "[2.4 顺序结构](#Section4)  \n",
    "[2.5 分支结构](#Section5)  \n",
    "[2.6 循环结构](#Section6) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id = Section1> </a>\n",
    "## 2.1 程序执行过程\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib as mpl\n",
    "import matplotlib.pyplot as plt\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x24d205fe5d0>,\n",
       " <matplotlib.lines.Line2D at 0x24d205fe710>]"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAAGdCAYAAAAfTAk2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACtVUlEQVR4nOy9eZxcZZX//75V1VW973vS6U4nIQvZIEAIoqJkSIARMiKKg4MiwgxDnFH8KuJPwcEFUccZFwQXEBjBdQQVnQBGAyghgYRA9r3TnfS+77Xe3x+3nlvVnd67bt2nqp7361Wvvum+detU6ta95znnc87RdF3XUSgUCoVCoUgiHHYboFAoFAqFQhFrlIOjUCgUCoUi6VAOjkKhUCgUiqRDOTgKhUKhUCiSDuXgKBQKhUKhSDqUg6NQKBQKhSLpUA6OQqFQKBSKpEM5OAqFQqFQKJIOl90G2EEoFKKxsZGcnBw0TbPbHIVCoVAoFFNA13X6+vqorKzE4Zg4RpOSDk5jYyNVVVV2m6FQKBQKhWIGNDQ0MHfu3An3SUkHJycnBzD+g3Jzc222RqFQKBQKxVTo7e2lqqrKvI9PREo6OCItlZubqxwchUKhUCgSjKnIS5TIWKFQKBQKRdKhHByFQqFQKBRJh3JwFAqFQqFQJB3KwVEoFAqFQpF0KAdHoVAoFApF0qEcHIVCoVAoFEmHcnAUCoVCoVAkHcrBUSgUCoVCkXQoB0ehUCgUCkXSYamD89JLL/Ge97yHyspKNE3jmWeemfQ527Zt4/zzz8fj8bBw4UIee+yxs/Z58MEHqampIT09nbVr17Jz587YG69QKBQKhSJhsdTBGRgYYNWqVTz44INT2v/kyZNcffXVvOtd72LPnj184hOf4GMf+xjPPfecuc8vfvEL7rzzTu699152797NqlWr2LBhA62trVa9DYVCoVAoFAmGpuu6HpcX0jSefvppNm3aNO4+d911F3/4wx/Yt2+f+bsbbriB7u5utmzZAsDatWu58MIL+d73vgdAKBSiqqqKj3/843z2s5+dki29vb3k5eXR09OjZlEpFAqFQpEgTOf+LZUGZ/v27axfv37E7zZs2MD27dsB8Pl87Nq1a8Q+DoeD9evXm/uMhdfrpbe3d8TDEgba4akboP5Va44/A/qG/Tzzxhn6vQG7TVEoFApFKtDbCI/9PbQdttUMqRyc5uZmysrKRvyurKyM3t5ehoaGaG9vJxgMjrlPc3PzuMe9//77ycvLMx9VVVWW2M+LX4cj/we//igMdlrzGtNA13VufeJ1PvGLPdz8k50M+4N2m6SYDkPd4Buw2wpFqhDwGYs0SRjwBvja/x3ic0/vxRtQ166EIRiAX98CdS/D7/8d4pMkGhOpHByruPvuu+np6TEfDQ0N1rzQ5V+AooXQewae/hcIhax5nSny89caePWE4Wi9VtfFv/3sDYIh+042xTTorodvr4RvngP/91noqrPbInRd57n9zbxyvJ0BFRFMHgY74aVvwn+vMM63E9vstohXT3Sw8dsv8fCLx3lqRz2/fM2ia7Yi9my7H+pfAXcOXPsgaJptprhse+UxKC8vp6WlZcTvWlpayM3NJSMjA6fTidPpHHOf8vLycY/r8XjweDyW2DzyhXLg+sfgR5fD0edg+3fhbf9u/euOQUvvMF/940EA3nv+HJ59q4nnD7Rwz2/38eVNy9FsPOkUU2D792G4x9je8RDs/AEsvQbWbYaqC20x6de7TvPpX78FgEODJeW5rKku4PzqfM6fV8C8wkx1XiUSHcfh1e/DnqfAPxj5/Ytfh9rLbDFp0Bfg61sO89grdQBkup0M+oI8+JfjXH9BFelpTlvsUkyRY3+Cl//T2L7m21C0wFZzpIrgrFu3jq1bt4743QsvvMC6desAcLvdrFmzZsQ+oVCIrVu3mvvYTvkKuPIBY/tP/wH1O2wx457f7qNvOMCquXl8432r+PYHVqNp8OSOer7352O22KSYIkNdsPsJY/tdn4cF7wY9BAeegUfWwyNXwIHfQih+YXtd182bTk66i5AOB5p6+Z9XT/HJX7zJO7+xjQu/8idufeJ1Htp2nLp2lVqTEl2HU6/Az/4RvrsGXvux4dyUr4CrvgkOF5z6G5zeFXfTdp7s5Mpvv2yeZx+8aB5/vevdVOSl09w7zC9UFEduehvhN7cBOlzwUVh+nd0WWevg9Pf3s2fPHvbs2QMYZeB79uyhvr4eMFJHN910k7n/v/zLv3DixAk+85nPcOjQIb7//e/zy1/+kk9+8pPmPnfeeSc/+tGPePzxxzl48CC33347AwMD3HzzzVa+lemx5iOw/H2gB+HXN8ddj/N/e5t4bn8LLofG165bidOhceWKCr74nnMB+M8XjvDznfVxtUkxDV7/CfgHoPRceMf/g396Gm5/BVbfCI40aNgBv7wJvnMevPowePstN2lPQzf7G3vxuBy89Ol38erdl/P9G8/nlkvnc968fNxOB+39Pl440MIDWw7xgR9uJxC0N0WriCIYgL2/hh+9C35yJRz+A6DDog1w0+/gn1+Gi26FFdcb+2//btxMG/IFue/3B/jAD7dzqmOQyrx0nvjoRdz/3hUUZrn513ctBOD7244pHaGsBAPwvx+DwQ4oWwEb7rfbIsDiFNXrr7/Ou971LvPfd955JwAf/vCHeeyxx2hqajKdHYD58+fzhz/8gU9+8pN8+9vfZu7cufz4xz9mw4YN5j4f+MAHaGtr45577qG5uZnVq1ezZcuWs4THtqJp8J7/hsY3oPO4ocf54M/BYX3ArGfQzz2/2w/Av7xzAUsrImV0H76khta+YR78y3E+9/ReirM9rF8m0f+bAgJe2PGwsX3JxyP567JzYdP34fJ7YOeP4PVHoPsUbLnLSF/980tGitQi/ufVUwC8Z1UlBVluAK5aUcFVKyoAGPYH2d/Yy+5TXXzvL8do6fXy12PtXLa41DKbFNPg5x+Eo88b2650WHUDXPyvULJ45H7rNsObPzMihJ0noXC+pWa9XtfJp3/9FifDEb8bLqzic1cvJTc9zdzn/RfM5aG/HKOxZ5if7azn5rdZa5NiBmy734j8ubPh/Y9DWrrdFgFx7IMjE3Hrg9O819DjBL3wd/fFRY/zmV+/yS9fP01tSRZ//Le3n5Wz1nWdT//6LX696zTpaQ6euvVizp9XYLldiinyxk/ht3dATiX8+5vgco+9n28Q3nwK/vJVY9X03h/DyustMalzwMfF92/FFwjx2zvexqqq/An3v+e3+3hi+ynee94cvvWB1ZbYpJgGbYfhwYuM9NM7Pg0Xfgyyisff/3/eC8e3wkX/DFd93TKzvvX8Yb77l2PoOpTnpvO161aM6xA/ueMU/9/T+yjN8fDSZ96ltDgycexP8NP3ATpc9wiseJ+lL5ewfXCSjjjrcf52rJ1fvn4agAeuWznmRUDTNO5/7wouW1zCsD/ERx97jWOt1qc4FFMgFIJXwqmBi/9lfOcGwJ1p3KjWhFOzB56xzKxfvt6ALxBi5dy8SZ0bgGtXzwHguf3NDPlUSsF2DvzW+LngcrjssxM7N2BEDgHe+B/L0uv7zvTwnT8bzs31a+by3CffMWG07/o1VczJz6C1z8tTO1R6XRpG624sdm6mi3JwrCZOepwhX5C7f7MXgH+6uJoLawrH3TfN6eD7N57Pqrl5dA/6+fCjO2npHbbELsU0OPYnaDtklFeu+cjUnrPs2shzLdDiBEM6T+4w0lMfurh6Ss85f14+VYUZDPiC/Olgy+RPUFjL/meMn+JcmYzay4zFmX/QSIVawPMHjPPiimVlfOP6VeRlpE24v9vl4I6wFuehF48rLY4MSKq7iUY5OFYj9DiFCyztj/NffzpCfecgFXnpfGbj4kn3z3S7ePQjFzK/OIsz3UN8+NGd9A77Y26XYhq88h3j55oPQ3re1J5TvgIKayEwbLQmiDEvHWmjoXOIvIw03rOyckrP0TSNa1cZUZzf7jkTc5sU06D9KLTuN9JTS66a2nM0DS75N2N7xw/BH/vFzwthB2fDueO39xjN+9bMZU5+Bm19Xn4a1oQpbOTFr0mpu4lGOTjxwJNjnABOT7g/zvdievi9p3v48csnAPjypuXkpE+8GhIUZXt44qMXUZzt4VBzH1/9w8GY2qWYBo1vGJ0/HS64+PapP0/TIitzsVKPIUJcfP2auWS4p6572HSe4QxtO9xG14Av5nYppohIXdZeBhnT0Nqd+w+QOwcGWmHvL2NqUkPnIAebenE6NN69ZOoidLfLwcffbURxHn7xhEp/2smxrUZzSID32N/vZjyUgxMvRuhxvhgzPY4/GOIz//sWId2ocLl86fSqoqoKM/nP968CjLBxSHU6tgehvVl+HeTNnd5zl20yfh59IaajHRo6B/nL4VZg6ukpwcLSHJZV5BII6fxxX1PMbFJME6G/EefIVHGmRRztV74X06iziN5cUF1gVuRNlevWzKWqMIP2fhXFsY3eJql1N9EoByeeROtxnv1ETA75w5dOcLCpl/zMNO59z7IZHeOSBUVke1x0DvjY32jRIFLF+HSdikRfhMBzOlSsgvxqCAxFSoFjwE93nELX4R3nlFBTnDXt54sozm/faIyZTYpp0HHcqOTUnLDk6uk///wPgycX2g/H9LwSDs7fzaBFRZrTwcfftQiAh188zqBPjQyJO3/6Igy2S6u7iUY5OPFE0+DqbxoXnNYD0D27zpzH2/r59tajANzz98sozp7ZOIo0p4N1C4oAeOlo26xsUsyAVx8ynN7adxmRvumiaXDuJmNbrNhnybA/aM7/+adpRm8E71lViabBzrpOznQPxcQuxTQQ50LtOyFz/KKDcUnPjYjdX4lN47/uQR8764xCiyuWTV1/E80/nD+HeYWZdAz4+J/tKooTV0IhOPaCsX3lA1LqbqJRDk68ySiAOecb2ydfnNWh7v/jQXyBEG9fVMw/nDdnVsd6xyKjdPSlI8rBiSvRYxlmEr0RCB3OkeeMHjmz5I97m+ga9DMnP2NaOoloKvIyWDvfuLH+bo+K4sQdob+ZavXUWKz9l/D4hr/CmdmPb/jL4VaCIZ0l5TnMK8qc0THSnBEtzg9eOqGiOPGkZZ9RNeXOhqqL7LZmUpSDYwfz32n8PDFzB8cbCPLy0XYAPnfV0lkPOXzHOSUA7DrVRb+aFB0/xFiGsuXGzKmZUnk+5M0zSnuP/WnWZglx8T+unYfTMfNza9NqVU1lC50noenNcHrqPTM/Tt6cyPiGGERxnt8/8/RUNP9w3hyqizLpHPDxhIrixA+xKK++xNBpSY5ycOxATOo9+aIx/G4GvNnQgzcQojjbzZLy2bfory7Korook0BIZ/vxjlkfTzEFxhvLMBM0DZZdY2zPsunfvjM9vFHfTZpT4/0XVM3qWFcur8DtdHCouY9DzUrfFTdEeqrmUsgqmt2x1m2OHLOrbsaHGfYHeTEcIZ6tg+NyOvj4uw0tzg9fOsGAWpTFB7Eot2na/HRRDo4dVF0ErgzobzHaqM+AV08YTsja2qJZR28Ebw+nqV5WOpz4sPdXxjmQUwnnvnf2xzv3H4yfR54D/8w1L0LXcNWKCkpyZqbrEuRlpnHZYiM6+FuVpoofwsER2qzZUL48MtH+1YdmfJjtxzsY9AUpz01nxZwp9nmagE2rK5lfnEXngI/Ht9fN+niKSQj4jEn0EMlCSI5ycOzA5YF5FxvbJ7bN6BDCwbm4dparsyjesci4ESkdThyYzliGqTJnDeTOBV+/0adiBvQM+vntm0Y6aabi4tGI0Q2/29Oo2hDEg65T0LgbNMfs0lPRiMZ/u5+YcTf25w80A0b0JhaLMleUFueHL51QqXWrOfO6kU7PLIbSmVXsxhvl4NhFbdgDnoHQ2BsIsutUFwDramdQHTEO6xYU4XJo1HUMUt8xe6GqYgJmMpZhMqKb/s2wmurXu08z7A+xpDyHNdWxGcJ6+dJSsj0uznQPsau+KybHVEzAwd8ZP6vfBtklsTlm7WVGWbB/EF5/dNpPD4V0/nTQ6Kk02/RUNNesqqS2OIvuQT9/fEv1W7IUkZ6a/w5wJIbrkBhWJiMixFf3V2OmxzSI1t8sKMmOmUk56WmcH76pvajSVNYyk7EMU0GkJA7/37Rb7IdCutk87Z/WVccs9Zme5mTjcqMk+Jk3lNjYcqY7e2oqaFqkym/HDwz92DTYc7qbtj4vOR5XTKPOLqfDPLdeq7Nmzp8izMnE0t+AcnDso2KVcWPz9kLTnmk91Qr9jUCUi7+s0lTW0fTmzMYyTIU5FxiaHl8fHP/ztJ76yvEOTrYPkO1xmdVPseLa1UbTvz/sbcIXiP0sNkWY7gYjlYAGS6+J7bGXvzdqfMOvpvVU0dzvsiWluF2xve1cUGMsykRUW2EB3n44/ZqxXZsY+htQDo59OJxGqA+mrcOxQn8jEOXirxzvwB9UNyJLEF1hF185/bEMk+FwzDhN9URYqHnd+XPI8rhiatYlC4opzvbQPehXInYrMdNTl0BO7FJBgFEWvOZmY/vI9Aa7Pr8/or+JNefPMxycE+0DdPRPL7KkmCL12yEUMDqmF9TYbc2UUQ6OnZj9cLZN+SlW6W8EyyvzKMxy0+8N8EZ9d8yPrwAawiuh6kutOb5wcA7/ccqphMbuIf500FhlT3fu1FRwOjTes6oCUNVUlmKmpzZZc/zqS4yfp1+bcouLE239HG8bIM2pmRV1sSQ/083CUiNVr6I4FiHuUQkUvQHl4NiLyGU27JxyWe+e+m5L9DcCh0Pj0oWqXNwydD0S6p17oTWvUbUWssuN9OcUnedf7zpNSId1tUUsKpt9X6WxEGmvFw60qL4lVtBzBk7vNLaXxqh6ajSVq43mgX1N0Ds1PZVIT11cW0RuujXN4S6oVmkqSzEFxsrBUUyVooWGXiLohfpXp/SUV08YQjor9DeCt6uxDdbReQKGOsHpmdncqangcESa/okV/STsPGmcV1evrLDGJmDl3DxqijIZ8gfNkmFFDBHpqaqLIdeiz9GdZfTFAWNhNgWEg3OFBekpwRrl4FjHQDu07DW2lYOjmDKaNu1ycaG/WWeB/kYgdDhvnemhc8Bn2eukJCJ6U7k6Nr1vxkOkKA7/wWjQNQGhkM6bp7sBWF2Vb5lJmqaZPXFUmsoCYtncbyJE5PH065Pu2tbnNVsDrLfQwbmgxkjXv3WmB28gaNnrpCQnXzJ+li2PXduBOKEcHLsRaaoppBKG/UF2hy8WVgiMBWW56Swpz0HX4a/H2i17nZRErHqtSk8J5l0MWaUw3DOp83yifYC+4QDpaQ4Wx2Dsx0SIaqqXj7bTrgShsaO3KRIFjnX11Gjmhocsnp48gvPnQy3oOqyYk0dFXoZlJtUUZVKU5cYXCLHvTI9lr5OSiHtTgkVvQDk49iNOmsY9xmTpCXizQehvPCwoybLULBHFUeXiMcZq/Y3A4ZzybKo3G7oBQ2Ce5rT2klBbks3KuXkEQzp/3Ksas8WMg78HdMP5yIttif9ZzL3A+Nn05qQidpGesqJ6KhpN08weXq/XqTRVTDH73ygHRzFdciug+BxAN5r+TYDQ31xcW2iZ/kZg6nCOtqHPcCCoYhS+AWjZb2xXXWT964lqqkN/gKB/3N32hB0cK9NT0Yg0lWr6F0OEExvL5n7jUVgLmUUQ9EHTW+PuNugL8PJRIwJ8xbnWOjgQERq/rnQ4saPrlDFg1eGKVNAlEMrBkQGzXHziVIKV/W9Gc2FNIelpDlp6vRxp6bf89VKCM7tBDxrzonIrrX+96rcZc2OGuiJ59DEQ+ptVcXJw3rOyAocGu+u7ae6ZXrdlxRj0tUSGIMbDwdG0KaWpXjrSjjcQoqowg8UWVeZFIxr+7T7VpRZlsUJEb+ZcAB7rP8NYoxwcGZiC0Dhe+htBepqTtfON11HVVDHCTE9dEJ/Xczgj5cLjpKmG/UEONvUC8YvglOams7g8F4g4V4pZcPB3gG4MW82vis9rinNYnNNjYKanlpZbHnEGWD4nD7fLQceAjzo1Sy82nEjc9BQoB0cOai41Jv+2H4HesatL4qm/EQgdzkuqH05sEDeDeKSnBKKi5uCzY84829/Yiz+oU5TlZm6BdSLQ0ayYYzg4ShAaA0T1lFXN/cZCnMMNYzs4gWCIPx+Kj/5G4HE5WTnHmOv2uppLNXt0PbLoTkCBMSgHRw4yCqBitbE9TpoqnvobgZhLtfNkJ8N+VXo5K+LR4G8sqi819BJDnVD/yll/fjNKfxOv8wqMqhqAt04rB2dWDHbCqb8Z28ssrp6KpvJ8Y1HWe3rMRdnrp7roGvSTn5nGhTWxmUo/FdaouVSxo/UADLRBWmZ8r1kxRDk4sjBJmiqe+hvBwtJsKvLS8QZC7DipVkSzoqvOuFg43cag1XjhdEVWX2P0LREC43jpbwTLww7OvjM9Si8xGxp3gx6CwgXxnRHkyYbSc43tMdJUIj317iWluCyuzItmzTwlNI4ZYrFdfYm1PbssRDk4shAtNB51wY/W36xbED8HR9M03rEonKZSOpzZIW4C5SvB5YnvawuHqvnsipd4NPgbi6UVuTgdGh0DPpqU0HjmiCqmytXxf22hwxnV0VjX9bh0Lx4L0dH4WGs/3YOqSemsSPD0FCgHRx7mXWy07+9rhPajI/60J6y/KcnxUFscH/2NwOyHo3Q4s8MO/Y2gYqXxs+nNEb/uHPBxKizGXDU3P64mpac5WRQekLhX6XBmjvhM4xkVFIhzeVRk8EhLP/Wdg3hcDvP6ES+KsiPXSLEoVMyAoD/StiRBBcagHBx5SMuAeWuN7VFpquj0VDx1EgBvW1iEQzMuWk09UxsIqhgDs4NxnCqooikP3/w6T8Bwr/lrEb2pLc4iL9OaIYgTsSIqTaWYISIqV74y/q8tdBmNb4wYB7IzLPC9aH4hmW5X3M1aoxr+zZ4zu8HXDxmFUGbRzLw4EBcH58EHH6Smpob09HTWrl3Lzp3j90647LLL0DTtrMfVV19t7vORj3zkrL9v3LgxHm/FWsw01bYRv444OIVxNgjyM92sDK/uXz6ixjbMCN8gtOwztufaEMHJKoK8cPlw817z13vqu4H4628EK+YaDo6K4MyQ4R7DaQV7IjhFC40CiaA3MowRONBoONHCgY03oh+O0uHMAjM99XZjeG+CYrnlv/jFL7jzzju599572b17N6tWrWLDhg20traOuf9vfvMbmpqazMe+fftwOp1cf/31I/bbuHHjiP1+9rOfWf1WrEfMpap7GUJG1ZKhv+kG4iswjkaEmV9UaaqZ0bQHQgHIqYC8ufbYIFb4UTocu/Q3AiU0niXNYac5rwoy47/4MRr+haM4UeXiBxoNh3VZZW78bSISwXmzoRt/MGSLDQmP2f/mMlvNmC2WOzjf+ta3uPXWW7n55ptZtmwZDz/8MJmZmTz66KNj7l9YWEh5ebn5eOGFF8jMzDzLwfF4PCP2KyiIXymiZVSsBk+usTJr2gMY+hufTfobwTvPMcrF/3asnWBI3YimTXSDvzinGE3ECj+s2dB13SwRtyuCsywsNG7v99Hcq4TG08ZO/Y3AnCxunOOBYIhDzX2A8fnaQW1xNvmZaXgDIfY39k7+BMVIfAPQsMPYTmCBMVjs4Ph8Pnbt2sX69esjL+hwsH79erZv3z6lYzzyyCPccMMNZGWNvLlv27aN0tJSFi9ezO23305HR8e4x/B6vfT29o54SInTZTT9A9ODtlN/I1g1N5+cdBfdg36VTpgJpv7GhvSUwBQaGxGc+s5Bugb9uJ0OllbY04J9hNBY9cOZPnbqbwSmg2Oc4yfbB/AGQmS6nVQX2bMgczi0SLm4avg3feq3Q8hvRAYLa+22ZlZY6uC0t7cTDAYpKxtZKlhWVkZzc/Okz9+5cyf79u3jYx/72Ijfb9y4kSeeeIKtW7fywAMP8OKLL3LllVcSDI7djO7+++8nLy/PfFRVxamd+UyYP7Ifjp36G4HL6eBtC8LDN1W5+PSwq8HfaMQqv+0Q+IfM/jfLKnPxuJy2mbVcCY1njgwRnDlrAA2666GvhQPhsR9LynNwOmyKVqIa/s0KkZ6a/077Is4xQmr10COPPMKKFSu46KKRK98bbriBa665hhUrVrBp0yaeffZZXnvtNbZt2zbmce6++256enrMR0NDQxysnyEi51n/KsNDA7brbwTm2Abl4EyPngbobzGm8drRq0SQU2EM3tSD0HIg7hPEx2OlEhrPDP8QtB02titsjOCk50LpUmP79GumwPjcSnsExoILqo0F4etq8Ob0OZkc+huw2MEpLi7G6XTS0tIy4vctLS2Ul5dP+NyBgQF+/vOfc8stt0z6OrW1tRQXF3Ps2LEx/+7xeMjNzR3xkJaSxZBdDoFhTrzxF9v1N4JLwg0G3zrTQ0AJ96aOSE+VrzBaAdiFpkU1/HtTGgdHRHD2nulVN6Lp0HLAcFazSgzn1U7MwZs7zQiOXQJjwcq5eaQ5Ndr6vJzuUu0tpsxgZ6R55Px32GtLDLDUwXG73axZs4atW7eavwuFQmzdupV169ZN+Nxf/epXeL1ePvShD036OqdPn6ajo4OKCpu/6LFA08wTq//AnwBYZ6P+RjCvMJNMtxNfIERdx4CttiQUogmanfobQXilHzyzxxRf2iUwFkSExl5aer222pJQhIsQKF9pfxohfG7rUREcuwTGgvQ0pxlFev2U0uFMmZMvATqULIWc+HahtgLLU1R33nknP/rRj3j88cc5ePAgt99+OwMDA9x8880A3HTTTdx9991nPe+RRx5h06ZNFBWNTM309/fz6U9/mldffZW6ujq2bt3Ktddey8KFC9mwYYPVbyc+hDtHFrQYQmy701NgCPcWlxti1INNfTZbk0CExZe2dDAeTTiC4z29B18gRF5GGjVFmbaapDoazxAhMLZTfyMQ5/aZN+gZGMShYV4r7OQC1fBv+pjpqcSunhJY7uB84AMf4Jvf/Cb33HMPq1evZs+ePWzZssUUHtfX19PU1DTiOYcPH+avf/3rmOkpp9PJW2+9xTXXXMM555zDLbfcwpo1a3j55ZfxeOI848cqwkLjWt9hshiyVWAczZLwRetQs6RVaLLhH46Ee+3oYDyacLWNp+MgLgKsivME8fGIpKmUgzNlZBAYC4oWQXoeWmCIJVo9C0qySU+zT7guuEAJjafPyZeNnwleHi6ISx/tzZs3s3nz5jH/NpYwePHixePm4zMyMnjuuediaZ585FfhyyjDPdTCxVnNzLdZfyNYUm6EnQ83qwjOlGh60yi3zCqF/Gq7rYGC+eDJxentZYHWyOqqpXZbBBgdb3+967SqpJoqQb+hwQF7BcYChwPmXADHt3Ke4xi9lZfabREAa8JC48MtffQM+cnLiP84koTCNwAdYR2rDBHnGCB1FVUq0+iZD8DfFXdKscqGSARHpaimiEhPzb3Qfp0EGDeicmOuzHKtjtVV9la6CFQEZ5q0HTbGI3jyDKdVBsItEM53HOVcmwXGgpIcD9VFmeg6pqheMQFthwDdWJBlFdttTUxQDo6kvOWfA8B56Y02WxJBRHDOdA/RO+y32ZoEwJwgbmP/m1F4S5YDcK6jLu4TxMdjWUUuDg3a+ry0qI7Gk2M2+Fshh+MM5jl+nnaMZRVyOM6A2fBvl2r4NzkiKli2zF47YohycCTEHwzxt95SAOb56+w1Joq8zDQq8tIBlaaaEg0SNPgbRV3aQgDOd9dTlC2HZi3D7WRRqREdVB2Np4BM+psw/cWrAahxtLAsVx4ndY0avDl1WsMOTqlycBQWUtc+wL6AMZQxveuQ0Q1XEiJCY+XgTEjPGehrBM0JlefZbY3JLp/RxXsxdRCSp5+RSlNNAyFcl0F/E+ZQt4OjISPqXNi9d5K944do+LenoVv175qMlv3GT+XgKKzkSEs/x/Q5BHGgDXUZnXAlYUm4v8WhJlVJNSFCf1O+HNxyiMQBtnUUMKynkREahK6TdptjsmKOcV4pofEkhEJylYiHOdDUy+7QIuMformlBCwqzSY33cWgL6i0g5PRetD4qVJUCis53NKHFzedbmNFZHrWEqAiOFNEwvSUruvsPt3PIX2e8QvRLE4CVqiRDVOj8wT4+sGVbpRnS8L+M728oRvpT1N7JgEOh8b51aJcXOlwxmWgHQZaAQ1KlthtTcxQDo6EHAk7D/35i41fiNyoBESXiqvW+hNgDtiUp9zyTPcQ7f1eDug1xi9EqkMCllXk4dCgVQmNJ6Y5rL8pWw7OuHT5mBIjIjhndkMwYK9BUZgN/5QOZ3zEIrqgRqqI82xRDo6EHGkxHBxH2bnGL0ToUAJqS7JIc2r0ewNqxst4BLyR6IgMDf7CvNlgREc6csP9b4RYVQIy3E4Wio7GSmg8PqbAWB79jT8Y4nBLH8f0OYTSssE/INWiLBLBUQ7OuJjpqXPttSPGKAdHMob9QXPWU35NOMcuUYoqzelgYalKU01I814I+iCzCApr7bbGZE+DcYF3zRFDN9+SSsCuhMZToEk+/c2JtgF8gRCZHjeaOXhTnjTV6qp8nA6Npp5hznSrRdmYtAqBsRzNP2OFcnAk43hbPyEd8jPTyK0Or9LaDkEoaK9hUSwVOhwlNB6bBska/IUREZzSBecb1V2DHdB7xmarIqwIOzhKaDwOuh6J4JTLE8E50GR8XksrctBEzyeJHJxMt8tsPvi66oczNi3JVyIOysGRDpGeOqcsB62wFlwZEBiGrjp7DYtisRIaT0x0B2NJCARDZmRk1fyyiJBQIh3OChXBmZjeMzDUCQ6XVDeiERPEheZMokoqgDXhNNUb9d32GiIjoVC4izEqRaWwlsPN/QAsLssBhxNKwkJjidJUZqm4Gro5NqdfN35KNM/lcEsfQ/4gOR4XtcXZkRSHRDqcZZW5ptC4VQmNz0Z8ViVLIS3dXluiOBCO5C6rzI1ozjqPw6A80ZKl4WvWsdZ+my2RkJ56ozLP6YbCBXZbE1OUgyMZR80IjiG4ND1qiUR7IkV1sn2AYb88qTMp6G2CngbQHFB5vt3WmIj01MqqPBwOLeLgNMsTwcl0u1hQEhYaqyjO2UjY4E/XdfabEZw8yCyEIvnKxReFBexHW1XU+SxEeqp4sVSVebFAOTiScTgqRQVERF8SRXBKcjwUZrkJ6XC0Ra2IRiAu6qXngifbXluiEAJjc/6UuElKFMEBlaaaEAlHNDT1DNM96Mfl0FgkFmUiTSWRgyMq9Fp6vfQMqTl6IxAC4yRq8CdQDo5ERJdeRxyc8EknUam4pmlRDf9UmmoEZ8LpKYnKwyESwVldlW/8IjxVnN4zRpMvSViuhMbjYw7ZlCeCI/Q3C0uzSU9zGr+UsJIqJz0yR++YiuKMRNxbJNJ1xQrl4EiESE+V5ngoyHIbvxQpqs7j4JenxFEJjcdBXCyEAyEB/d4AR8IXddPB8eRE8u0SRXFWqo7GYzPQHq5404zxH5Jg6m/CGhcg4oC1HrLBovFZFF40qqjzKJK0ggqUgyMV4otnRm8AsssgowD0ELQdtsmys1laroTGYyI+I4nane893YOuQ2VeOqW5UeJUCXU4Qmjc0uultU8JjU2EE1q0wHBOJcGsoKqMcnBKzjF+9jfDUHf8jRqHiA5HOTgmAR90HDW2VYpKYSVn6W/A6KNSKl9H4yUVoheOiuCY+Aahu97YFtVvErCnoRuAVSJ6I5BQhxMtNFZpqigk1N/AOBGc9DzIqTC224/YYNXYKAdnDDqOQigAnjzInWO3NTFHOTgSIXrgLC4fJU4VnnWrPELjRaU5ODToGPDR1ue12xw56DgK6JBRCFnFdltj8mbYwVl9loMjX6k4RAmNT6vooImEDf56h/3Udw4CkTJsk+JwFEeiqLMQQR9rUYsyE5GeKlsmVVPSWKEcHIk43DxGBAciudEWeUrFM9xOaoqMoWwqTRWmLbxalSg9BZHPRwh4TcrDDk7nCRiW5zNUIxvGQKQRJYrgHAynpyrz0iOaQYH4DrTL4+AsLDGuq409w/QNq0oqIGlHNAiUgyMJ3YM+WsORkEXjOTgSpahApanOQnQDFRoECfAGguYqW5TKmmQVQe5cY7t5b5wtG58Vc1Ul1QiGewwnFKRycCIN/vLO/mOJfBGcvMw0SnM8ABxvG7DZGklI4goqUA6ONBwJC4zn5GeQ7RnVbEl4132NMCTPRNwlYaHxQRXBMRCr1WJ59Dd17YOEdMjxuMyL+wiEDkcmoXFFLpoGzb3DKv0J0LzP+JlXZTTSk4QxBcYCEcGRyMGBSJrqqEpTGZgpquQa0SBQDo4kHDb1N2NUSKTnQt48Y1uiNJXohXNYlYobmBVU8jg4ojV9bWk22lg5dgl1OFkeJTQeQSIJjAXCye+uN8T3krCo1LhmqZENGGnpnnBRhEpRKazkSNhJMLuBjsYUGsvk4BgXtqMt/QSCIZutsZmgP5JGkMjBOd5mXMgXloxzXgnRqkRDN0F1NB6BhA3+fIGQ2dbi3LEiOFnFRnsL9EgZsgQsVJVUEUR6Kqcy/FklH8rBkQSzgmq0/kYgPGyJHJy5BRlkuZ34giFOtqd4TrvzhFFu6c6WqtxSrFTP0t8IRFSg7ZBUjSSV0DgKCSM4x9v68QVD5HhczC3IOHsHTYtKU8lYKq6izua9JAn73wiUgyMBuq6bDs5ZFVQC0QtHohSVw6GZKbWDqZ6mEgLj4nOkKrcUDs6Ckqyxd8ithMwi0INSOc8r1MgGA/9QJPUp0ZBNob9ZWpk7duoTokrF5eloLAo4GjqHGPQFbLbGZsT3PUnTU6AcHClo6/fSNejHoU2w0i6LqqTS9fgZNwlLwvn3w6kuNDZLxOVJT4VCOifaJ4ngaJqUOpxzKw2hcVPPMO39KSw0bjlgOJ9ZJZHmeRIgJoiPmZ4SiO+CRKXihVluisIl7cdbUzzqbI5oSE6BMSgHRwqONBs3oeqirMjAutEULQKHC7w94Zk0cmAO3Uz1UvF2+QTGZ7qHGPaHcDsdzCvMHH9HCXU4WR4XtcVG1Cml01TNUQ3+JIoMHmgyPpMxBcYC8V2QKEUFUZVUqZym0nWVolLEh0h6apxVNoDLbTg5IFWaaok5kyqFLxYQlaKSx8E5FhYY1xRn4nJO8FWXMIIDkejgsVQejiih/kbX9YlLxAXiu9B53BDhS4KopEppoXF/Cwx1guaQ6poVa5SDIwGTCowFEo5sEBqcM91D9AzJcxGLK6EQtB8ztiWK4Bw39TcTOM4QuXm27JfqRiTsFmm2lERE1STS35zpHqJ3OECaUzOdhTHJmwtpWYb4XlQYSkCkF04Kn1ct4XtI4QJIS5943wRGOTgSYA7ZHKsHTjQSdjTOy0hjTr5RRXEkVZtn9dRDYAicHsivttsaE7NEfDz9jaBgPrhzIOiVajiiEEanrFYi6I/ciCSK4IjozcLSHNyuCW4hmiZlR2PxfTiWyikqcQ9J4vQUxMnBefDBB6mpqSE9PZ21a9eyc+fOcfd97LHH0DRtxCM9faSHqes699xzDxUVFWRkZLB+/XqOHpWn18J00HXdXEmMW0ElkHAmFUSiOIeaUlRoLC7eRQvB6Zp43zgyaYm4wOGA8hXGtkRpqpSP4LQdNpxOTy7k19htjcmEDf5GI9IfEjk4IupU3znIsD9oszU20Zr8AmOIg4Pzi1/8gjvvvJN7772X3bt3s2rVKjZs2EBra+u4z8nNzaWpqcl8nDp1asTfv/71r/Od73yHhx9+mB07dpCVlcWGDRsYHh62+u3EnMaeYfq9RrhXDK8cF+Fttx+WKpWwJNVLxc0OxvLMoILoEvFJHByIGtmwz0KLpsf8sMi4vd9Hz6A853vcENGb8hWGEyoJU9LfCCSspCrOdpOfmUZIhxOpOpOqJbmHbAos/9Z861vf4tZbb+Xmm29m2bJlPPzww2RmZvLoo4+O+xxN0ygvLzcfZWVl5t90Xee///u/+fznP8+1117LypUreeKJJ2hsbOSZZ56x+u3EHNHBuLY4e+JwLxjjGtzZEPRBx/E4WDc1hBg0ZSM4ZgWVPFPEOwd8dIWdgtrxeuBEI3qWSNR1NsvjoiLPiN4eT8UojkgXFsvlOE+pRFxQIl8ER9O01G74FwpGiiKSdAaVwFIHx+fzsWvXLtavXx95QYeD9evXs3379nGf19/fT3V1NVVVVVx77bXs3x8R1Z48eZLm5uYRx8zLy2Pt2rXjHtPr9dLb2zviIQtT1t+AsYoTN1GJmrItDdt+pKWfUEieHj1xQ1y8JboRiejNnPwMMt1TSJsVhyv02uVxcCDinB1PxYoX4WyKz0YCegb9nOk2Ol4vnU6Kqv2oIcaXhIWpPJOqqw4Cw+DKgIIau62xFEsdnPb2doLB4IgIDEBZWRnNzc1jPmfx4sU8+uij/Pa3v+WnP/0poVCISy65hNOnTwOYz5vOMe+//37y8vLMR1VV1WzfWswQEZxzJtNJCCScSVVTnIXb6aDfGzAvfimDrkvZ5G/K+huBaEHQfQoC8jTWE+m146mYShCVeUXyODhCfzO3IIO8jLTJn1BQA063IcIXgx0lwIzgpGIllZmeWgKOcfquJQnyJHbDrFu3jptuuonVq1fzzne+k9/85jeUlJTwgx/8YMbHvPvuu+np6TEfDQ0NMbR4dhxpnUYEB6Qc2ZDmdJg30oOplqbqbzGaL2oOQ2QsCaKCakr6G4CcciP9qYeg86SFlk0P0ezvRFuK3YhCIaN/DECxPOfVtATGYIjuxfdCooZ/olT8SCqmqEyBcXJXUIHFDk5xcTFOp5OWlpYRv29paaG8vHxKx0hLS+O8887j2DFjNSOeN51jejwecnNzRzxkIBiKVFBN2gNHIGEEB2BJRbiSKtWExiKXXTAfXB57bYli2hEcTYvciCTS4SwoFRGcFHNwehqMNILTLVXrgaPhlPqSqS7IQM6ZVOEU1amOQbyBFKukUg5ObHC73axZs4atW7eavwuFQmzdupV169ZN6RjBYJC9e/dSUWHMYZk/fz7l5eUjjtnb28uOHTumfExZqO8cxBsIkZ7moGqiVvrRiJOyqw588oTtl5aLmVSp5uDIl56CGTg4IKUOpzYcgarvHMQflEfDYTnCySyslSqNcKLduObUTjUyCBHdoESVVGW5HnLSXQRDOnXtg3abE19akn9Eg8DyFNWdd97Jj370Ix5//HEOHjzI7bffzsDAADfffDMAN910E3fffbe5/3333cfzzz/PiRMn2L17Nx/60Ic4deoUH/vYxwBDAf+JT3yCL3/5y/zud79j79693HTTTVRWVrJp0yar305MEc7AwtJsnI4pzpnJKoasUkCHVnlWRJGp4imWopJwBtWQL2hqocadIj4WQuvRccwCq2ZGRW46GWlO/EGdhs4UuhGZ+ht50lMQKaueUmWewGz2J0+KKmUrqfxDkdRnCkRwLO9K9oEPfIC2tjbuuecempubWb16NVu2bDFFwvX19Tiiejx0dXVx66230tzcTEFBAWvWrOGVV15h2bLIh/GZz3yGgYEBbrvtNrq7u7n00kvZsmXLWQ0BZeeoOYNqGuFeMDzvE61GqHHuGgssmz4iRVXXPsCQL0iGW55Vp6WYFVTyODginVOQmUZR9jTSZkLrIVEEx+HQqC3JYn9jLyfaBqYXOUhkJKyg6h32m5PdRY+iKSEiOG2HDVG+JENDF5XmsLu+O7WExu1HDJ1dRiFkl02+f4ITl7armzdvZvPmzWP+bdu2bSP+/V//9V/813/914TH0zSN++67j/vuuy9WJtrC4anOoBpN6blwYptUOpySbA9FWW46Bnwcbe1j5dx8u02KDxI2+ZvyiIbRmBEceRwcMNIh+xt7Od7Wz3qS/6IMRJxMiSqoToajNyU5HnLSp1BBJShaaIjwvT2GKD9navpLqxFC45QqFTfTU+dK42haiXRVVKnEken0wIlGdJ9skWfopqZpqSc0HuyEgXBHbol64Byfif4GoGiB8XOoCwY6YmzVzBFptpTqOivShBJFcMTIjNrpRG/AEN+LfisSCY0XpmKKqjU1OhgLlINjE75AyLxgzyhFBVJFcAAWl4mOxilywRCdZnPngmean6GFHJtuibjAnWW8F5AqilNbkmKVVL4B6D1jbEukwTk5E/2NwExTyaPDWRS+7p5sH0gdAXtL6lRQgXJwbKOuY4BASCfb46Iyb5raoZIlgAYDbdDfZol9MyESwUkRobGE6SmImkE13QgOSFlJZU4VTxUHR0RvMosgs9BeW6I4LiqoimdyXoW/IxJVUlXmpZPlNgTspzpSRMBuThFP7hENAuXg2ISooDqnLBtturlQd1Yk5CtRFEeUih9q7kPXU2BkQ5t8M6gCwRAnwzeihTMR5BbLp8MRgtauQT+dAz6brYkDEupvYIYVVAJJZ1KJNNWxVEhTDXVBX6OxLdE1y0qUg2MTQn+zeLr6G4HwwCVycBaVZePQjEGPbf3ytPu3jHb5ZlA1dA3hD+qkpzmYk58x/QMUyRfByXS7zPeSEh2Nxf+9RB2MQyGdurDjPK0KKoGEDg5EZlKlRCWVSE/lzYN0OZrdWo1ycGxCRHBER81pUyqfDic9zcncAqNh4clUEISaTf7kWQ2J9FRtcTaOqfZWikbCUnGIRA1SQmhslojL4zg39w4z5A/icmhTb0oajXgvA62GOF8SIiMbUsDBaU2dBn8C5eDYxNHwF2rmEZzwSSrRTCqIrO5EmiRp8fZHhgdK1ORvRh2MoxERnK6TEPTHyKrZsyCVhMYSpqiEYzmvMJM05wxuG54cyJ1jbLdLJDQ2h26mQIoqhUY0CJSDYwPD/iB1HTOsoBKYEZyDxmA+SUgZB0essjOL5RKCzrQHjiB3DrgyIBSArlMxtGx21JpC4yQ/r3QdOsSQTXkcnJOiRHwm+huBhGkqEUE/0T5AINkrqVKsggqUg2MLx1r70XUozHJTnO2e2UEKF4DTA/6BSCRBAsQFMOkdHAnTUxBVQTXTjr8Oh5xDN8PvJ+k1OL2Nxnfa4YoUEkjAcVNgPItO0qLbt0QRnLkFGaSnOfAFQjR0DdltjnXoelQFlXJwFBYS0d/MoIJK4HRFypPFiSsBNUWp4uCEG5ZJVCKu6/rMm/xFI6EORzg4pzoH8QWSeKUtnMqCGnBOo1uwxZyYjcBYYEZw5Gn253BEKqmSOk3V12R0kna4pEp9Wo1ycGxg1hVUArO1/vFZWhQ7xAXwVMcgwVASl4qLVahEM6ja+rz0eQM4NKgpnoEQVCDhyIayXA9ZbifBkE59Mg/dlFB/A1Epqpg4OPJEcCCSpjqazEJj0VupoAZcM8waJCDKwbGBIzMdsjka0VpfounPlfkZuF0OfMEQjd1JHPJtk2+KuEhPzSvMxOOaxbBTs9mfPOeVpmmp0dHYHNEgT4n4sD/I6XD6JiYpqp56o1uzJER64aTAeVW4wF474oxycGzgSMssK6gEplZCnhuR06FRU2RED04ka5oq4IPOE8a2TA7ObAXGAgk1OJAipeISRnDqOwfRdcjxuGauGQTIKjJE+SCVDmdRKsykElF+iUZ/xAPl4MSZvmE/Z8KRjXNm2gNHIE5WcbOVBLOSKllX2p3HQQ+COwdyKuy2xuT4bEY0RCPOq4E2GOqe3bFiSEqUips9cORxcISwu7Yka+aaQYGEaSoxk+pYaz+hZE2rmw6OiuAoLESEQUtzPORlzlJEWFhr/Ow9I1XId354Vk3SCo2j01OzveDHEDOCM5s0AhhdTrPLjW2JooORCE6SOjj+IehuMLYliuDEpIJKIOFMqqoCI60+7A+Zi8+kQ3yPlYOjsBJx059VPwlBZiFkhHuwSBTFEULEpE1RSai/gVkO2RyNlEM3RQRnIDlnnXWeAHRIz4OsYrutMTkZiwoqgTlVXB4Hx+V0mNespExTBQNG405QKSqFtcxqnstYmEJjiSqpkr0XjoQzqHqH/bT0GvO/Zq3BgSgHR55UwvziLDQNeoaSdOim+L8uWiRVZDA6RTVrRFsFiRwciKSpjiTjTKqeeqNxpysdcirttiauKAcnzpzsMEpcY+fgyCc0Fu/tTPcQw/6gzdZYgIRTxIXwtjTHQ256DPqnSFgqnp7mNIduJmVHY1G1JpH+BmLUA0cgvjOdJwyxviRERjYkoYMjFr+FC4xGnilEar1bCRD9JERDvFkjIjgSpaiKstzkpLvQdZKvZ0koGEnbSNTkb9YdjEcjYak4kNyl4sKZlCiN0DXgo3vQmEkWEwcnp8IQ5+tBQ6wvCYvMUvEkTFGlqMAYlIMTV3Rdp649xhGcQvl64WiaFtHhJNtKu/sUBL3GmIz8arutMZn1kM3RRFfoheSJwi1IZqFxu4QVVOEFWWVeOplu1+wPqGlSpqnEVPGjrf3Jp+9KUYExKAcnrrT1e+n3BtA0mFc0i06z0UiYogKoCTs4Yqho0tAWpb9xzKKZXoyZ9ZDN0eTPM5y4oBe65Zl1Fi00Tip0PepGJI+DI/6f58dCfyOQUGhcXZRFmlNj0BeksWfYbnNii3leyRMZjBfKwYkjInozJz9jdp1moxGl4oMdMNQVm2PGgEgvnCS7EZn6G3nSUxDVAydWKSqHM3JuSeQ8J22peH8reHsBLfL/LgFm1WdxjM4rkLJUPM3pMK9ZSTeTqjNKg5NiKAcnjsS8ggrAkx1pNtchjw7HdHCSrZKqXb4p4r5AiFNhrVPMIjgg5dBN0eOnvnMQb0Ce1NmsMYdsVkNaur22RBHTCiqBhM3+IDKTKqlGNviHo3orqQiOwkJiWo0QjamXkEe0J1Z8SdcLR0xClqhE/FTHAMGQTrbHRVmuJ3YHlrCSqiTHQ7bHRUiH+o4kErBLOKIBIhq6mF6zhIPTfkQqfdfCZKyk6joJ6OCRq7dSvFAOThwREZyYVVAJJEwliGnW7f1eeof9NlsTI3Q9suqUqMlfdIO/WbfSj0bCZn+applC46SqpOqQr0Q8GNI5FXYiY5b6BEOcb+q7TsXuuLMkIjROohSVWUFVK1VvpXihHJw4IgS3MRXsgZRC45z0NEpyjGhCXbJEcfqawNcHmlOqfHakRDzW55WI4MhzXkF0qXiSnFcQFcGRJ41wpmsIXzCE2+WgMtx/KCY4nJEIqERpqvlmYUQSRQZTWGAMysGJG6GQHml5HusIjoTdjCEJdTgiPVVYC65ZTFWOMTGvoBIIDU5fE3jlWdUmZwRH3hLxmqJMnI4Yr/7NUvFDsT3uLBCR9c4BHz1DSRJ1TmGBMSgHJ2409w7jDYRwOTTmFsRwNQRREZzjRhpFEpKuF46E6SmI4ZDN0WQUQGY4by9RFCfpIjgBH3SFUzUSaXDE9zamFVSC4igdjiRkeVyUJlvU2UxRqQiOwkLEF2ZeYSYuZ4z/2wtqQHMY6ZOBttgeexYkXQSnXb4hm6GQzvFW4/83JkM2R2OW9Mrj4Ag9yIm2JGnK1nXS6OzrzoaccrutMRERnJhWUAnMSip5SsUhEsVJmv5dKdzkD5SDEzdENVFNrCuoAFweyKsytiVaaSedgyMiOMXyODiNPUMM+YOkOTWqC2PUPDIas1RcnpV2dVEmDg36hgO09XvtNmf2mEM2F0olBI3pFPHRRDs4EjmpojgiKa5Z3j7obzG2lYOjsBLLKqgEEgqNox2cpFhpSyjYE2mamqKs2EcGQcpS8fQ0J3MLjBtRUqQ/JRzRAFEpqlinPgEK5gOadFFnswN7Mjg4Ij2VVQLpefbaYhNxcXAefPBBampqSE9PZ+3atezcuXPcfX/0ox/x9re/nYKCAgoKCli/fv1Z+3/kIx9B07QRj40bN1r9NmaFuRqyItwLUgqN5xVlomnQ7w3Q3i/P5OAZ4e2H/mZju0ieTrMxn0E1GkmHbiaV0FjCEQ2DvgBN4ZEFtVZEcNLSo6LO8lyzRAHIyWSopBLnVYoKjCEODs4vfvEL7rzzTu699152797NqlWr2LBhA62trWPuv23bNj74wQ/yl7/8he3bt1NVVcUVV1zBmTNnRuy3ceNGmpqazMfPfvYzq9/KrDjZYVEFlUDCCI7H5TQF1Qkf8hXT2jMKDfGtJMR8ivhookvFQyFrXmMG1Jo6nAQ/ryAqgiNPZFB8Xwsy0yjIsqhiUCwUJGpQmlQRHHHNkijiHG8sd3C+9a1vceutt3LzzTezbNkyHn74YTIzM3n00UfH3P/JJ5/kX//1X1m9ejVLlizhxz/+MaFQiK1bt47Yz+PxUF5ebj4KCuS56YwmEAzREG6lL3K8MUdEcDrlGdcAMD9cgXGyPcFX2ubFQq7VkGUl4oKCanC4IDAEvWcm3z9ORIZuJvh5BZH0n0QRHEvTU4JC+a5ZQkLQM+SnayDBo84pLjAGix0cn8/Hrl27WL9+feQFHQ7Wr1/P9u3bp3SMwcFB/H4/hYWFI36/bds2SktLWbx4MbfffjsdHR0xtT2WnOkewh/UjYZZeTEuERcURqWoZFppi1LxRF8RSdpP4rjVKSpnWlgvgVQ6nNpkSVENRA3JlehGZMmIhtFImFbPcDspzzVmgZ1M9Eoqs0RcnvMq3ljq4LS3txMMBikrKxvx+7KyMpqbm6d0jLvuuovKysoRTtLGjRt54okn2Lp1Kw888AAvvvgiV155JcHg2HNNvF4vvb29Ix7x5KQpMM7EEeuGWYL8eeBIM9qf95625jVmQNJMFe+QL4LTM+SnI7zKtKQ6TyChDkdEcE53DTHsl2ee0bQRTmPuXHBb+BlOk5NWlogLzAiOPA4ORKLsCZ2m0vWoyKBKUUnJ1772NX7+85/z9NNPk54embB7ww03cM0117BixQo2bdrEs88+y2uvvca2bdvGPM79999PXl6e+aiqqorTOzCwZIr4aBzOqJlU8lwwkqZU3IzgyCMwPhVeYYoBlJZh6rvkieAUZ7vJSXeh6wnes0RC/Q1EIq6WNPkTmNerE1KVis9PBh3OYCcM9xjbEl2z4o2lDk5xcTFOp5OWlpYRv29paaG8fOKGVt/85jf52te+xvPPP8/KlSsn3Le2tpbi4mKOHRt7hXn33XfT09NjPhoaGqb3RmbJSSt74ERjhnzlWWmLi8WpjkGCIXkuYtOmQz4Hx7LRH6ORduhmEgiNJdTf6LoepcGx8NwSDUr9A5F+LRJQkwyVVGJBljsX0iySRSQAljo4brebNWvWjBAIC8HwunXrxn3e17/+db70pS+xZcsWLrjggklf5/Tp03R0dFBRUTHm3z0eD7m5uSMe8UR8USy/EUkoNK7Mz8DtcuALhmjsHrLbnJkx3AsD4ao/iVJUde0WC9cF0g7dDOtwWhNYhyPSfhL1wGnr99LvDeDQjKaKluFyS1kqnhSVVEpgDMQhRXXnnXfyox/9iMcff5yDBw9y++23MzAwwM033wzATTfdxN13323u/8ADD/CFL3yBRx99lJqaGpqbm2lubqa/37iI9ff38+lPf5pXX32Vuro6tm7dyrXXXsvChQvZsGGD1W9nRsQlRQVRQmN5bkROh0ZN+CKZsELjrpPGz8xiqRpmidSM5ZFBcfPtaQCfPKtaM4KTqOcVyDlkMxy9mVuQicfltPbFJFyURaeoErZBqXJwgDg4OB/4wAf45je/yT333MPq1avZs2cPW7ZsMYXH9fX1NDU1mfs/9NBD+Hw+3ve+91FRUWE+vvnNbwLgdDp56623uOaaazjnnHO45ZZbWLNmDS+//DIej8fqtzNtfIEQp7vCERzLU1Ty9cKBaKFxgq60Ja1GMB0cqyODmUWQnm9sSyQITfhS8WAAOsPOs0QpqrhUUAkkFBrPKzQalPZ5A6aIP+FI8SGbAguViRE2b97M5s2bx/zbaGFwXV3dhMfKyMjgueeei5Fl1lPfOUhIhyy3k5Icix0wcTJ3nYKg3yjxlYCaRBcaS1oibvn4D4GmGRGG068ZOpzyFda+3hRZEJWi0nUdTaI5TlOi+xSE/ODKgNw5dltjEpcKKoGEpeLpaU4q8zI40z1EXfsAxdnyLZwnRTk4gORVVMlAXZTA2PILcE45pGUZk4m7Tln7WtMg4XvhiBJxiQTGPYN+ugb9QBw0OBA1VVweofG8okycDo0BX5DWvgQcuhk9ZNMhz6XYFBjHJYIjuhnLk6KCBB+6qevSLsrijTzfqiQlbhVUYKy0JWx/LroZJ2w5r/i/lGgGlWhCVpbrIdMdh0CshKXiHpeTqvAokIQUGktaIi6uWZZ2MRZEdzOWSO8ioqIJec3qawL/IGhOoxN5CqMcHIuxfAbVaCQUGotc/umuIbyBBGzK1iHfakj0wKmO13klYak4ROlwEnGlLWGJuD8Yoj48ViYuKaqCauNG7B80bsySEBEayyOqnzLi2l9QLY1MwS6Ug2MxJ+Mp2AMphcbF2W5yPEZTtvpE6y0x3AOD7ca2RCLjuPXAEUSXiku00hY34ROJKDSWsES8vnOQQEgnI81JWU765E+YLc40ows7SJWmMnvhJKTjrPQ3AuXgWEzcSnkFpoMjT4pK0zTmlySoDkdcdLNKwZNjry1R1MUz9QlQON9oyubrh76pjVmJBwnds0TCVvrRCzLLxsqMRkKhsXledSRgqbhZIi7PeWUXysGxkCFfkKaeYSCeERz5LhaQwCMbJC0RF80ja6xsxBaNywP54Xy+RDocEcE6lWiRwaFuGGgztiW6EZ2IZwWVQNJScYcGg74gbYkmYJew67pdKAfHQkT0Ji8jjYLMOOVCxcWy97RUTdkSduhmp3wVVBDR4MQtggNS6nCqw++/vnOQQDBkszXTQKyys8shPb6d1ScirhVUAgln6LldDuaEBewJtyjrVCkqgXJwLCSuJeKCzMJIUzbRgVcCEj6CI5GD0z3oo1uUiMdLgwNSjmyoyE3H43IQCOmcSaRRIGYFlTz6G4gashmPCiqBhN2MIUErqUY0j5Qr6mwHysGxEFFBFdfVEEgpNBZTiRNPgyNfiko4ieW56WS4LW6lH40oZ5YoguNwaOa8pIRyniXU3wDxGbI5muheOCF5onCRRZk8kfBJ6Wkwmkc6PcagzRRHOTgWItIxcV1lg5RCY9E4q73fS++w32ZrpoGEJeJ1Zol4nPQ3AnFeSaSVgEipfELpcCSsdOkd9tPeb+hN4qYZBEPb5XBBYBj6GuP3upNgRnASynGOWpBJ1DzSLtT/gIVEKqjifSOST2ick55mtjxPmAvGUBcMdRrbEqWoRG+OuN6EIPJ/0F1vjAKRhIRMf3bKl/oUC7KSHA856XHsn+J0RQTsEqWp5hcnYIpKRO0lOq/sRDk4FiJCmyI9EzeK5Gv2B5FUXcLciMTFNrsMPHH+DCcg7q0HBDmV4EqHUMBwciQh4bQSui6lTkJUUMXdcQYphcbi+3WqYzBxSsWVwHgEysGxiL6ocG/cIzgSll1C5MJ5IlEqqcwZVPLchCCOQzZH43BIOTtIlMonTIqqv9XoJ6Q5oKDGbmtMxPdyQTz1N4Ii+a5ZcwsycDo0hvxBWnoTpFTc7IEj1zXLLpSDYxEijVCc7Y5vuBciJ/dAm9GJVxJEs7+EWWlLOINK1/Wo+WZxdpxBTgcn7Dg3JEqpuDiv8uYa/YUkwayginfEGaJGzMhzXqU5Heass4SJOqsmfyNQDo5F2Bru9eQY/TVAqpBvwmklJBQYdw/66R0OAFBdqFIJYFSTiVLx010JUCouaW8lsyjCjmuWhEOCISJgT4hFWcAL3Q3GtnJwAOXgWIaI4MQ9jSCQUGhcG9XsLyFy2jKWiIcvtBV5cS4RF0iYSoguFU+IG5GEjrOu62bzyPm2RAbFeXVSylLxhCiM6DwJ6ODOgawSu62RAuXgWIRtQlCBhELjeUWZaBr0eQO09/vsNmdyOuXT4NimvxEUyuc4Q4KV9EroOLf1exnwBXFoUFVog4OTVwWONAh6ofdM/F9/HGoSqcdS9HkVr8aykqMcHIuI5LNtvhFJtNL2uJzMTZSc9mCnUSYOxqBJSaizU38D0peK1yWC0FjCFJWIOFfmZ+Bx2RAZdLqgQJSKy3PNqkmkUnElMD4L5eBYRNynPY9Gwm7GAPPDAsaTYY2StIibUE4FuG36DMegrsPm1GdOBbgyQA9KVSqeMFoJXZeyOk9cr2zRDAokjA7OjyoVD4UkT6srgfFZKAfHAroGfPQM2TArKBrTwTlhXFQlQUS0pB/ZIKFOAiRIfUaXikt0IxIRLelTVP0t4B8Il4hX222NiW3dsaORcCbVnPwMXA4NbyBEU++w3eZMjHCclYNjohwcCxA3b9uEoBDur6GBtwcG2u2xYQzMnLbsvXBkLxG3y3GGSMpOohuRWGk3dA3hl7lUXPyfSVYibjrOtp5X8jnOLqeDeYUJ4jybXYzlWpTZiXJwLMB2IShAWjrkVxnbEqWp5peIFJXsFwv5IjidAz76RIm4FCtteW5EZTlGqXgwpHNG5lJxCc8riHRdtzVFJeF5BZFoqdTXLG8/9Dcb2xItyuxGOTgWIFZD8+3oCBqNhMMRa6Ny2kGZc9pipS2RYE/obyrz0klPsykyCFJqJRwOzVxQnJRZhyNhBVV0ibhtqU+InFdddRAK2mfHKBKiQk+cV5nFkFFgry0SoRwcCxApqvl2RnAg6kYkTwSnMj8Dt9OBLxiisVvSlbauSzkM0XbhukDCbsaQIDocCSuo2vq8DIoS8QIbI4N5c8HphqAPek7bZ8coRF8gqQXsqoJqTJSDYwHS3IhMobE8K21nVFM2aYXGg52RERcFEpWIm0JQu8+r8EVUslJxsdKWeiaVhBVUIvUypyADt8vGW4LDGZnNJVHUOSFSVEpgPCbKwYkx0UJQW/PZIGU3Y4jqLSHrBUNcXHPngNvGFe0oIueVzTblVEBaplEq3nXKXluikP5GpOuSpj4l0AwKJEx/iv+Xhs4hedPqpsBYnsigDCgHJ8ZEh3vn2dERNJpo0Z6E7c+lvRF1yJeegkhkwvYbkaZJmaaqkb0XTl9zpEQ8X54ScSkExgIJS8UTIq2ueuCMiXJwYow04V6AvHlG+/PAMPQ12mtLFNLfiCQVgkrRjE1glopLtNIOR7ZOy1oqbpaIV4HLba8tUZySJfUJUpaKOx0a82Qf2WBes5SDE41ycGJMJI2QbbMlhNuf1xjbEgmNpReDSjiDqmPAR583gGbXrKDRSJhKKMtJJz3NKBWXcqq4hI4zSJT6BCkjOCD5omzEWBm5os52oxycGCNKVOfb2ackGglHNkjflE3CFJVwBivzMuwtERdIeCOKLhWX0nmWsAeOUSIuSeoTIt+5rjoIBmw1JRrh/EkZwemQUzMoA8rBiTHSVFAJTKGxPDciqVfa0gpBwzchGVbZEKXBkSeCA5EGiFKutCUsEW/p9TLkD+J0aMy1s0RckDsXnB4I+aGnwW5rTKQujFAC43GJi4Pz4IMPUlNTQ3p6OmvXrmXnzp0T7v+rX/2KJUuWkJ6ezooVK/jjH/844u+6rnPPPfdQUVFBRkYG69ev5+jRo1a+hSkjTQWVQMIbkdQr7YF28PYCmlwl4jJ0x46mMKpUPOCz15YopL4RSek4hzWD+RJoBiE860w+fdd8M0UlYQsCSVOfMmD5Gf2LX/yCO++8k3vvvZfdu3ezatUqNmzYQGtr65j7v/LKK3zwgx/klltu4Y033mDTpk1s2rSJffv2mft8/etf5zvf+Q4PP/wwO3bsICsriw0bNjA8bO8wtFAoEu6VxsGRtVS8SNJKKnGxyJtrjLuQhJMylfIC5JSHS8VDUk0Vn292M5bsRhQdGZQoRSVdxBmi9F3yRJ3F/09D5yAB2dLqEqY+ZcFyB+db3/oWt956KzfffDPLli3j4YcfJjMzk0cffXTM/b/97W+zceNGPv3pT7N06VK+9KUvcf755/O9730PMKI3//3f/83nP/95rr32WlauXMkTTzxBY2MjzzzzjNVvZ0KaeofxBkKkOTXm5GfYaouJ2f78pFQ5bXOlLVsqQUL9DUh4IxpRKi6P81xtNvuT7Lzqawb/YLhEfJ7d1phIpxmEyCwlic6r8lxj1llAxrS6iuCMi6UOjs/nY9euXaxfvz7ygg4H69evZ/v27WM+Z/v27SP2B9iwYYO5/8mTJ2lubh6xT15eHmvXrh33mPFCTMiuKszE5ZQg3AuG8MyVDqEA9Ei00pZVtCfhxSJaCCpFpYtAwpJeETmVrlRcnFf586QqEZfOcQYpK/SknXWm65H/J4lKxHec6OCrfzzI1oMtttph6V24vb2dYDBIWVnZiN+XlZXR3Nw85nOam5sn3F/8nM4xvV4vvb29Ix5WEFkNSXSxcDiibkQShXxlLbuUUAja3u+jP1wiLoUQVCBhJVVZrscUsDd0SpSmkjSNIFUFlUDCJpIgaXuL/lbw9RuRQdESRAJeOd7BD186wfP7k9jBkYX777+fvLw881FVVWXJ6yyryOGWS+dzxbllk+8cTyRMJYiV9pmuIXwBiVbaEt6IhBMoTYm4QMLzStM0OWdSSeg4h0J6ZEyDTBEcc9bZKTnT6jI5ONGaQZfHXluiMIttSuw9ryx1cIqLi3E6nbS0jPTiWlpaKC8vH/M55eXlE+4vfk7nmHfffTc9PT3mo6HBmvLDNdWFfOHvl/GBC+XJsQNSCo1LcjxkuZ2EdKiXZaUtaYm4dJV5AglTCSCpgF3C1GdL3zDD/lC4RFwSzSBATmUkrd4tz6wzKQXsEi7IQJ75ZpY6OG63mzVr1rB161bzd6FQiK1bt7Ju3boxn7Nu3boR+wO88MIL5v7z58+nvLx8xD69vb3s2LFj3GN6PB5yc3NHPFIKcfJLttKulq1UXNJw7ylzlS1RegoiN+ueBjlLxWVKf0o8RbyqIIM0WTSDMDKtLlGaSuoIjkSOs0wDpy0/q++8805+9KMf8fjjj3Pw4EFuv/12BgYGuPnmmwG46aabuPvuu839//3f/50tW7bwn//5nxw6dIgvfvGLvP7662zevBkwboyf+MQn+PKXv8zvfvc79u7dy0033URlZSWbNm2y+u0kJhJGcCBy8ktzI5I03FvXLqFOAiC7DNKywqXi8qy0a8xmf5KstEMhKVNUIoUnxQyq0UgtYB+UJ60uYQSnY8BH37ChGay2uTrPZfULfOADH6CtrY177rmH5uZmVq9ezZYtW0yRcH19PQ5HxM+65JJLeOqpp/j85z/P5z73ORYtWsQzzzzD8uXLzX0+85nPMDAwwG233UZ3dzeXXnopW7ZsIT1dnr4lUlEYldMO+KSp4qiRrZJKwosFRP5/pHNwRKl4y17j/654kd0WARKutPubITAEmhMK5JkiLtXw1tEUyRd1Ls3xkOl2MugL0tA1yIISCeYNSphSl2msjOUODsDmzZvNCMxotm3bdtbvrr/+eq6//vpxj6dpGvfddx/33XdfrExMbnLKjZW2f8BwciS5EVXLVkkl4SrbKBGXUAgqKAo7OBKlEkavtG3v0NsRVSLuTLPXligijrNkqU+QMkUl0uoHm3qpax+w38EJhaQsETfPKwlS6hIlXhWWoWmR5lkShnxFCsZ2JMxnt/V7GfAFcWhQVSiREFQgob6rNMdDRpohYD/dJcG5JeF5BchZQSWQVsAuUdS5rykSGZSpeaREkUHl4KQKEt6IRMqlsWeIYX/QZmuQUggqnL/K/Aw8LolKxAUSaiWMlbZEQzcljAxGj5WRLvUJUaXi9RD022tLFFIJ2MW1vKBaqsigLBVUoByc1EFCoXFxtptsjwtdx/6mbJKWiEutkwApm/1B5P/rpAzRQQm1Xc3hsTIu2UrEBTkV4VlnQeiSR8A+X6YeSxKeVxD5ztXa3AMHlIOTOkgYwdE0TR6hcV+zoVHSHJAvkRBUotXQmBTKXSouxUwqiR1nqcbKRCPprLMa03GW4bySL/Wp63pk/IcE1ywJz2yFJUgYwQGJRjbIOitIZp0EQHYpuLONUvGuOrutMZFGKxEKQedJY1uiFFVkOr39QtBxkTD9aXZg75YgrS5hSr2l18uQP4jToVFVaP+5pRycVMFcaZ8G/7C9tkQhTSpBQp0ERP5fpL0RaRoUzje2JUpTSeM4SyoElboHjkDCSqribDc5sqTVzQiOPNcs2ZpH2m+BIj5kFYMnD9Ch66Td1pjUyNLNWMJ8tvQl4gIJ05/SzDqTVAgqU6XLuEjYC0fTNHO+0gk7r1mhYFTqU8YScTnOK+XgpAqSlopLU5UgYT67rc/LoCgRl2mK+GgkTCWUhJuyhXRosLNUXNLIYJ1kN6IxkbRUfL4MOpye0xD0gdMNedYMj54JsmkGlYOTSki80m7qGWbIZ2NOW8J8triAzinIsL9Z3URIutKWYtaZhJHBUEjnVDi9Ml+SG9GYyDrrTAzdbLPxvDIjgzXgkKd9xInw/4kMFVSgHJzUQkKhcUFmGrnpRkPtU502XTCiZwVJFMGRbTU0LoWylopLMJNKwvOqqXcYX7hEvDJf4vE22WVSCtjFzdvWCI6EjjPId81SDk4qIeGNSNO0qI7GNl0w+hoNIajDJZUQVAiMpdZJQCT90nMaAl57bYlCrgiOPCkq8f8xT9YScUF0qXjHMXttiUJ8H23V4EjoOAdDOvUdcl2zJD67FTHHjODIc7GA6N4SNq20xf9HQY1UQtBTkq2GxkXSUvH5dldShUIRQb9EDo5sQtAJEQJaia5Z4v+tvd9L77BNXZYldJwbu4fwBUO4nQ4q8+VoHqkcnFRCfBn6msAnQaOqMLZXUomLp0TVCCDX0LoJGdGUTZ7ooO0C9r5GCAyHI4MSNY+UqBHbpEjo4OSmp1Gc7QFsvGZJWBQhrlfzijJxOjSbrTFQDk4qkVkIGYXGtkQ3IrMqwa4bkYQTeY0ScYlnBY1GQn2X6B1kW6m4OUW8Gpyu+L/+OAhNkvSOM0DxIuOnROcVQK2dlVTBQCRSKtE1Szb9DSgHJ/WQ8UZktwan/ajxU6KLhWwdQSdFwrb6JTkessKl4vV2NGWTtURcwhvRuJjXq6P22jEKW0vFu09BKACudMipjP/rj4NsFVSgHJzUQ8ZS8fCFtrXPy4A3EH8DJExRnWjvB2CuJB1BJ0VSAXu1ORzRhhuRhGkEGYWgEyLOq/4WGO6115Yo5ttZSRXtODvkuTbI6DjL87+jiA/mikieG1FeZhoFmYa4N+56iYDPWBGBVA6OuHDWJsJNCKQ8rwB7h7lK2FtJCEHTnJo0QtAJyciHrBJjW6ZFmZ0RHAkFxhCJwMvkOCsHJ9WQsOwSotNUcU4ldNUZ1T/ubMgpj+9rT0Ak3JttsyVTxCwVb5Bq1pmtM6kkTFEJXVdVoTxC0Ekpkk+HY2pw2gbQdT2+Ly5hZNAfDNHQNQQoB0dhJxJ2nQUbS3pFbr9ogVENJAkJMSsomqwScOcAeiQiJgHCcT4V72Z/0SXiMg1DDH+/pO5gPBpxzWqXR4czrygTTYM+b4D2/jh3WZawyV9D5yDBkE5GmpOyXI/d5pgoByfVEF+KgTapcto1doV8JdTfAJxoMzQ4Mgn2JkTWWWdFNp1XvWciJeJ58jSPTIgZVKORsFTc43Iyt8BI8cX93JIwghPdW0mTaKGoHJxUIz0XskqNbYmiOLZVUkno4PgCkXDvgkRJUYGUlVRCg9PYPYQ3EMdZZyI9JVuJuHJwYkbEee6P34sGfNBdb2xLdM2KRJzlqvhUDk4qImGpuH0pKrEaWhTf152A+nC4N8vtpDRHnnDvpEhYSVWSHSkVb+gcit8LS7jKhuhKF7luRBMS3Qsn3nqXCai1Y2RDtGYwuyx+rzsJMlZQgXJwUhMJb0Ripd3e76Mvnu3P26M0OJIg0lPzS+QK906KhI6zbVPFJdRJBEO66eTJdiOakIIa0Bzg6zPKxSVhfpTQOG4Ix7lwvtIMTgHl4KQiRfJVUuWkp1Gc7QbiWEk13AMDrca2TA6OebFIoPQUSDmuASIX3bhGByWsoJJxVtCUcHkiQ3AlumbND6eP46rBkdBxhsg1Wzk4CvsplG+lDVE57XjdiMT7zyqF9Lz4vOYUECvChOmBIxDnVc9puUrFw9FBWxwcmSqoJJwVNGUk1OGI7+epcEo5LkiY+hz2B2nsCUcGJbtmKQcnFZG0VDzuQmPh4BTLo7+BSBfjhKmgEmQVgycX0KWaKl4d70qqUAg6xRRxeW5EpxJRfyMwe+HI4+BU5mfgdjrwBUI0dsdJ3yVhBOdUxyC6DjnpLoqy3HabMwLl4KQiImw+1AWDnfbaEsX8uDs48ulvIKrJX6KlqDTN0AaAVM7zgrCjeCJeWone0xD0hkvEq+LzmlPgZHsCDW8djdkLRx4Hx+nQqC6Kc6dsMzIozzUrWn8jm2ZQOTipiDsrMqRNIr1E/FNU8pWI9wz66RgwGofNT7QIDkgpYBeOYlPPcHxmnYn3XlAjV4l4RwKWiAskTFFBnEc2+IeMTuEg1TVLnFey6W9AOTipi4QVL6ZWIm4RHPkcHJGeKsv1kO2R5+Y4ZSQ8rwqy3BSGQ+dxuRFJmEaAqB44CRnBCX9Hu05C0IaBvOMQ16GbIu3pyYPMIutfb4oIzaCM55VycFIVGZuyhb8gXYN+egYtLhXXdSl74Ig0ioyroSkh4bR6iKSpjrfFoSmbhGmEQDBEQ1c4RSVZM7YpkTsHXBkQCkg1CiSuvXBMgXGtXCXiKoKjkA5zpS1PyDfL4zIb21le8dLXDL5+o79GQY21rzUNzCniidTBOBpzmKs8KSqIpKmOx0OHI2WJ+DD+oI7b5aAyL4FKxAUOh5TXLNHKIS7djCWNDMraAwcsdnA6Ozu58cYbyc3NJT8/n1tuuYX+/vFPhM7OTj7+8Y+zePFiMjIymDdvHv/2b/9GT0/PiP00TTvr8fOf/9zKt5J8yFoqHq+eJeIimV8NLnmU/2YFlYQXiykhKtJ6T4MvzgMuJ2BBqRAax+FGJGHzSLHKri7MxJFoJeICKR0c47w63RWHUSASloj3ewO09XkBObVdljo4N954I/v37+eFF17g2Wef5aWXXuK2224bd//GxkYaGxv55je/yb59+3jsscfYsmULt9xyy1n7/uQnP6Gpqcl8bNq0ycJ3koQURYlBJWp/Pj9eJb0S6m8gqoIqEQXGAJmFEX2ARDeiuEVwgv7IFPHixda+1jQQ+ptqCXUSU0ZCoXFxtptsjwtdh3qrJ9aLqKhEERxxXhVmucnLSLPZmrOxTMV48OBBtmzZwmuvvcYFF1wAwHe/+12uuuoqvvnNb1JZWXnWc5YvX87//u//mv9esGABX/nKV/jQhz5EIBDA5YqYm5+fT3l5uVXmJz8F8wENvL0w0A7ZJXZbBEB1vITG4iIpUQ+cUEg3I1cJVyIeTfE5UL8d2o9AxUq7rQFgQWkklRAK6dZFMTpPGjqRtCzIPfsaZxeRSpcE1N8IJOyFo2ka84uz2HumhxPtAywqy7HuxSSM4MicngILIzjbt28nPz/fdG4A1q9fj8PhYMeOHVM+Tk9PD7m5uSOcG4A77riD4uJiLrroIh599FF0iaIQCUFaeqRHh0SCUDOCY/lqSERw5LlYNPYMMewPkebUmFuQgDoJgXAa24/Ya0cUVQUZpDk1hv0hs+uqJbQfNn4WL5JKCJqQU8RHIyI4EvXCgTj17/L2Q1+TsS2Rtkv2yjzLIjjNzc2UlpaOfDGXi8LCQpqbm6d0jPb2dr70pS+dlda67777ePe7301mZibPP/88//qv/0p/fz//9m//NuZxvF4vXq/X/Hdvb+80302SUlQLPfWGDmfexXZbA8Sxm7GEKSqzlX5hJi5nAuv/i88xfkrk4LicDqqLsjjW2s/xtgHmFlgUyRDvWfwfSEJdeMEwX9Ib0ZQQi5G+RuOG75EjyhmXXjhCuJ5RaKSBJeGk5JHBaV9FP/vZz44p8o1+HDp0aNaG9fb2cvXVV7Ns2TK++MUvjvjbF77wBd72trdx3nnncdddd/GZz3yGb3zjG+Me6/777ycvL898VFXJ013UVgrlE+2JlUDPkJ+ucMO7mBP0R0YJSFginrAVVALTwTlqrx2jiHQ0tlBoLN6zRA6OLxCivlOUiCewgxOt75KpkWRJHErFJUxPQXSKSs5r1rQdnE996lMcPHhwwkdtbS3l5eW0traOeG4gEKCzs3NS7UxfXx8bN24kJyeHp59+mrS0icVLa9eu5fTp0yOiNNHcfffd9PT0mI+GhobpvelkRcKZVBluJ+W56YCFHY2768M6iUzIqbDmNWaAuPEmbAWVoDhKKxGyuLJkGgjH0dJeOGYERx7Hub5zgGBIJ8vtpCIv3W5zZoeEQuO4RHAkLRGPpD7ljOBMO0VVUlJCScnkgtR169bR3d3Nrl27WLNmDQB//vOfCYVCrF27dtzn9fb2smHDBjweD7/73e9IT5/8C7lnzx4KCgrweDxj/t3j8Yz7t5TGjODIsxoC48vS3DtMXfsA588riP0LiFV24QKjv4YknGhP8AoqQX41ON0QGDZay0vSZ2hB2MGxbCaVrksZwTnWajh0C0qzpZsVNG2KFkLDDqkcHBEVa+vz0jfsJyfdgmoiCZtHdg/66Ao3ZJVVg2PZ1X3p0qVs3LiRW2+9lZ07d/K3v/2NzZs3c8MNN5gVVGfOnGHJkiXs3LkTMJybK664goGBAR555BF6e3tpbm6mubmZYNBYCf7+97/nxz/+Mfv27ePYsWM89NBDfPWrX+XjH/+4VW8leZG1VNxqHY6EAmNIohSVwxklCJUnTVVrdTfj/hajKlFzSHVumQ5Oop9XIGUvnNz0NIqzww1K2y0qjjAjOPIIjEXEqizXQ5akY2UsterJJ59k8+bNXH755TgcDq677jq+853vmH/3+/0cPnyYwUHjpNi9e7dZYbVw4Ujx58mTJ6mpqSEtLY0HH3yQT37yk+i6zsKFC/nWt77FrbfeauVbSU7yq42LsX/A6OybK0e6psbqSioJS8SH/UGzukfWkstpUXwOtB4wUjaL/s5uawBYENYJtPR66fcGYj/rS6SnCmrAJU/EWPT+WViaDA6OfKXiYKSV2/u9nGjvZ8XcvNi/gIQaHHN4q6TRG7DYwSksLOSpp54a9+81NTUjyrsvu+yyScu9N27cyMaNG2NmY0rjchtOTtdJ4wski4MTtwiOPBVUdR0D6DrkprsoypKns/KMkbCSKi/TWGm393s50dbPyrn5sX0BSSuokiuCE6XB0XVpSvHnF2exs67TGh3OcA8MtBnbEmlwToajVTKn1OURICjsQcLpz9EpKkv6G0no4ESnpxJeJwHSVlKZFS9W6HBM/Y08kcFQSDdTcgtL5b0RTZnCcIPS4R6jQakkWDpVXFybs0ohPTf2x58hJyXvgQPKwVFIWCo+rzATTYM+b4COWJeKRzfMkijcaw7ZTIb0FERu8m2H7bVjFAusrKSSMILT3DvMoC+Iy6El9pgGQVpGpEGpRNcsSyupJBQYQ2I0j1QOTqoTLTSWhPQ0pznxOOZpKpHLziyGDAsqtGaIuOHKHO6dFiI6NtgOg5322hLFgrhEcORxcER6qrook7REbh4ZTbHEpeJtFkSdJSwR13U9IRZlSXLGK2aMtFPFjb4KMV8RSZiegiSqoBJ4siF3rrEtUZrKsgiOt98oiQcpHZykEBgLJOyFY2nU2RQYy1NB1d7vo98bQNOgqlDOHjigHByF+NJ0nYRQyF5borAs5Nsun4Oj67rZ5C8pKqgEEs6kiu46GwzFcKUtbraZRVK10j/WlkQCY4GEDk56mpM5+UbUOfaLMvkiOKKCqjIvg/Q0p83WjI9ycFKdvHngcBlN2XrP2G2NycLwBfloa4xX2hL2wOkc8NE7HACSzcGRr5JqbkEmbqcDXyBEY3cMh25KmJ4COJ6UERz5dIMwMk0VUyQsET9pRpzlvl4pByfVcbqgYL6xLdHIhkVlOUAkxB4zJOyBIzoYz8mXezU0bcwIjjwpKqdDM9Ofx2KZppJwRAMQVUGVTA5O+P+484Rco0CKLZhJNdgJQ13GtkxN/hKgBw4oB0cBUq6IFoUvyKc6Bhj2x+gipuuRcK9EKapEWQ1NGwkjOGDRyAYJK6i6B3209xt6kKTRdgHkzQWnB4K+iO5JAiJp9Rg6zuJ6lVMJbnmuD4lQQQXKwVGAlDOpSnI85Ka7COkxzGkPtIG3B9AiUSsJON6eJEM2R1Oy2PjZVQeBsQfh2oElQmMzRbU4dsecJeL9VeSlx75rs504nJFoRrs8i7L54fMqphocCdNTkDhtLZSDo4gIjSWK4GiaZqapYqbDEe8vvwrS5JmqLCIJSaW/AcguA08u6EHoPGm3NSaRZn8xOq9CQSlTn0lZQSWQMOosbvZ1HYOxE7CL9ydReioU0iNjGiS/ZikHRwElS4yfbYfstWMUIk11rKUvNgc0Bcby3IQgajWUTGkEMNromzoceRr+RSI4MVppd9dD0GukTfLnxeaYMSCpRjSMRpxXEjk4lfkZsRewi2uyuEZLQEvfMMP+EC6HxtyCDLvNmRDl4CgiX57uU+CzaP7TDBArz5hHcCTS3wSCIU51JKkGB6TU4Yj/57Y+L73D/tkfUKSnihYa6RNJEA7cgqSM4MhXKu50aFQXxbh/V6twcORJfQrNYFWh/M0j5bZOER+yio3OviBVa/2Yp6gk7IFzpnsIf1DH43KY3ZuTCgkrqXLS0yjNMaZ9x0RoLGkFlZmiSsYIjoQODsS4f1fAG+kwX7p09seLEZEKKnkb/AmUg6MwEF8gidJU55QZF+a69gF8gRg0IZSwB060/sbhSIIhm6ORMIIDkSjO8Vg4zxJWUA37gzR0GdOeFyTDkM3RCAenpwH8MexnNEtiOnSz/aihX/PkQU7F7I8XI06a1yz5HWfl4CgMRJqq9aC9dkRRnmtUfwRCupnGmTGhYGQ1JNFKO+lmUI0meqq4FZPhZ4hZKh6Lkl4JHZyT7QPoOuSmuyjJ9thtTuzJLIL0fGNbojl684ti6OCIxWbpEkPPJgnivc0vVhEcRaJQKp/QWNO02Olwuush5DeEoGJGkgRELhZJ6uAUzAfNCb6oKe4SYAqNW5MzRRVdQaVJdHOMGZomZZoqpikqsdiUSGAMcKTVKPpYWJpjsyWToxwchUFJOEXVKo+DA5FKqqMts3RwotNTDnlOe3PIZgKEe2eEyw2F4Z5DEqWpIjOpZnleDXTAYIexLZG2K6lLxAXi/1sifZdIUZ3uGsQbmGWDUjOCI4/+ZsAboKHTSAkKCYHMyHOlV9iL+BL11BuTkSVhUfhLJFYNM0ZC/Q1EbrBJm6KCkWkqSRARnLr2WfYs6Qi/p9y5xgR1SUjKIZujMSM48oyYKcn2kO0xGpQ2dA7O7mASRnCE41yc7aEoAVKfysFRGGQWQlapsS1Rz5JF4TDosZhFcORJIwx4A7T0Gh1+kzaCA1IKjefkZ+BxOfAFQ5zumsWNSLynEnn0N5CkQzZHUyxfikrTNDNNNasKPf8wdIWbY0oUwTkc7km2uDwxzivl4CgiCB2ORGkqcYE+0d5PIDiLSioJe+CIPH1Rlpu8zDSbrbEQ4eBI1ILA4YjciGY1skFCgXEwpJsDH5PawZFQgwMx0uF0HAU9ZAips8tiY1gMONJsODiLEkB/A8rBUURjdjSWp5JqTn4GGWlO/EGdU7MJ+UrYA0fcWJNWYCyQMEUFMRq6ac6gkicyeLprEF8ghNvlYG6B/JUuM0aMLxjqNKZuS0JMHJzWqA7GEonEIxEc5eAoEo0S+SI4DkdUJdVM01S+Qeg9bWxL5OBERjQku4MT/j/vawRvjMZuxIAFJckZwTFbDxRn4UzG3koCdxbkzjG2JYriRATss3BwxCKzVB79DUSuweeUKQdHkWhI2OwPomZSzVRoLPpkZBRAVlGMrJo9ZgVVMgtBIfz/LvRd8kRxamc7kyrgNSalg1QOjjmDKpnTUwIJ01SxjeDIo7/pGfTT3DsMJEYFFSgHRxGNiOD0NEi10l5YNsteOBLqbyBSQZX0KSqQMk0VSVHN8LzqPGHoJDy5UukkknrI5mgkdHDEhO22Pi99M511JmEER1SyVualk5OeGJpB5eAoImQWRi7UEglChaBtxikqUcorkYOj67rZ8nxBsqeoIGomlTyVVCKV0N7vo2dwBjei6AZ/EukkREQqqQXGAgl74eSmp1GcPYtZZ/4h6AxXUEkUwTkcFhifkyD6G1AOjmI0Eo5sECmq4239M+tZIvpkSNQDp7XPy4AviEODeYWp4ODIVyqe5XFRnpsOwPGZNPxrk09/o+t6cg/ZHI2EvXAgUkYtnIJp0X4E0I3UbnZpbA2bBUeFwDhB9DegHBzFaCTU4VQVZuJxOfAGZtizRMIeOGJlV1WYiduVAl9DCVNUEBlEOaOhmxKOaGjv99Ez5EfTUkC8DhEBe+dxCMVgIG+MWFKeC8DB5t7pP1lEz0uWShUZFBVUiSIwBuXgKEZTIt9MKqdDM/UEM0pTSajBMTsYp4L+BiJOQOdxCAbstSUK0WBxRhUvEldQzS3IID3NabM1cSBvHjjSIDAMvWfstsZkSTiNc6hpBhGcVvn0N7quR1JUysFRJCwSlopDZGTDtIXGAx0w1GVsi74ZEpAyFVSCvCpwZUDQB92n7LbGxCwVn+55petRPXAWx9iqmZNS6SkApysy66xDnujg0gojgnOouRddn2ZavS2qB44ktPf76Bo0IoOJpO1SDo5iJGLV0HsahmcQXrUIc+jmdEvFxcUibx645Wl6lvRTxEfjcETSCRLpcISDOe0ITm8j+AfAEXWDlYCUGLI5Ggk7ZS8szcahQdegn7Y+7/SeLOEMKqG/qS7MJMOdOJFB5eAoRpJRANnlxrZUF4wZVlK17DN+lp0bY4tmhyhNTgmdhEBCobHoFXOqY2B6o0DEeyiYD055SmaPp8KQzdGI73bzPnvtiCI9zWkuXg5OR2jsG4z0VpJwBlUipafAYgens7OTG2+8kdzcXPLz87nlllvo75/4BnXZZZehadqIx7/8y7+M2Ke+vp6rr76azMxMSktL+fSnP00gIE9eP+EplW9kg0hRHWvtJzSdSqrmvcbP8uUWWDUzfIEQDV1DQIrdiCR0cCpy00lPc+AP6uZnMiXM9JQ8+htIkSGboykLf7db9tprxyiWiDRV0zQi4WYFVSFklVhj2Aw4ohycs7nxxhvZv38/L7zwAs8++ywvvfQSt91226TPu/XWW2lqajIfX//6182/BYNBrr76anw+H6+88gqPP/44jz32GPfcc4+VbyW1EL0XJNLhVBdmkubUGPIHOdM9jRtRy37jZ5k8Dk595yDBkE6W20lpjsduc+KH2QtHHq2Ew6GZQuNp6XAkrKAa8AZo7DE6zaaU4ywWL62HpBKwLw0LjadVKi5S6qWSVVAlYA8csNDBOXjwIFu2bOHHP/4xa9eu5dJLL+W73/0uP//5z2lsbJzwuZmZmZSXl5uP3Nxc82/PP/88Bw4c4Kc//SmrV6/myiuv5Etf+hIPPvggPp/PqreTWkgYwXE5HeaN6NhUb0ShYCSfLZGDI9JT80uy0CS6iFlOtFZiusJLC1kQ1WdpykhcQVWU5aYgy22zNXEkvwbc2RD0StXReLFZKj4NB0dC/Y2u66Y0IJF64ICFDs727dvJz8/nggsuMH+3fv16HA4HO3bsmPC5Tz75JMXFxSxfvpy7776bwcFI75Pt27ezYsUKysoirdE3bNhAb28v+/fvj/0bSUUkjOBA9MiGKV4wOo5DYAjSMqUSgorVUMpUuggKFwAaDHfDYIfd1piIUv1pdZ2VMEVl6m9SKT0FhoC9dJmx3SKPDkeUih9r7cM/VX1XdARHEpp6hunzBnA5tIQrinBZdeDm5mZKS0d2YXS5XBQWFtLc3Dzu8/7xH/+R6upqKisreeutt7jrrrs4fPgwv/nNb8zjRjs3gPnv8Y7r9XrxeiNK9t5eeaqDpKQkXPba1wjDPZCeZ689YRZNd6q4yMmXLgOHPMr/A+Gc/LmVcvy/xg13JuRXQXe9EQHJKrbbImAGERxvn/HdgEhlmASkZAWVoHw5nN5paO5WvM9uawCjF1G2x0W/N8CJtgEWTyW9I2GJuBAYzy/OSrimpNO29rOf/exZIuDRj0OHZr7yv+2229iwYQMrVqzgxhtv5IknnuDpp5/m+PGZt+K+//77ycvLMx9VVVUzPlZKkJEPOZXGtkSVVOZMqqmmqERVhUQCY4g4OMsqcyfZMwmRUGhsRnCmWioubM8qNaoOJSGlhmyOxhQayxPB0TQt0vBvKh2NfYPQFe4RJVEE50iC6m9gBg7Opz71KQ4ePDjho7a2lvLyclpbW0c8NxAI0NnZSXl5+ZRfb+3atQAcO2bkVsvLy2lpaRmxj/j3eMe9++676enpMR8NDQ1Tfv2URURxZJpJFVVJNaXmWWaJuDwOTt+wn1MdRsp1WUUqOjjh80oiobEo1e8c8NE1MAUdn7C9RJ4Gf5BiQzZHU77C+ClRqThgRm0OTUWH034Y0CGzSJroJsCRBNXfwAxSVCUlJZSUTF6+tm7dOrq7u9m1axdr1qwB4M9//jOhUMh0WqbCnj17AKioqDCP+5WvfIXW1lYzBfbCCy+Qm5vLsmXLxjyGx+PB40mhapVYULoUTvxFqpENNUVZOB0a/d4Azb3DVORlTPwEM4Kzwnrjpoi40FXmpaeWEFQgqo4kigxmul1U5qXT2DPMifZ+1mQVTvwECSuo/MEQde0p7OCULgM06G+GgXZpHIRplYoLzaNEE8QhcUvEwUKR8dKlS9m4cSO33norO3fu5G9/+xubN2/mhhtuoLLSSH+cOXOGJUuWsHPnTgCOHz/Ol770JXbt2kVdXR2/+93vuOmmm3jHO97BypUrAbjiiitYtmwZ//RP/8Sbb77Jc889x+c//3nuuOMO5cTEEgmnirtdDmqKjG7Ek+pwBjsjOgmJmvztP9MDpGh6CqRMUUGUDqd1CmkqCSuoTnUMEgjpZLqdVIQnpKcUnuxIIUGzPP1wlk4ngtMm3wyqYEg3izrOKUs8x9lSxdCTTz7JkiVLuPzyy7nqqqu49NJL+eEPf2j+3e/3c/jwYbNKyu1286c//YkrrriCJUuW8KlPfYrrrruO3//+9+ZznE4nzz77LE6nk3Xr1vGhD32Im266ifvuu8/Kt5J6SDhVHCKriEl1OOIiV1ADHnlWHqb+JhXTUxBxCrrrwT+NfkYWI3Qrx9unoO8yK6jkieAcj+qM7XCkUOuBaCTU4QjdSlPPMD2D/ol3bpVPYNzQOciwP4Tb5aC6KLEqqMDCKiqAwsJCnnrqqXH/XlNTM0JLUVVVxYsvvjjpcaurq/njH/8YExsV42BWUjXBULchPJaARaXZ/B9G6eWESKi/gRQXGIOROkjPN0rFO45LIwCvNYduThLBCQYMu0GqCE7KDdkci/IVcPB3keaeEpCbnsac/AzOdA9xqLmXtbVF4+9sRnDkSVGJ9NSi0mycCeg4J1bNlyJ+pOdB7hxjW6IozsJwBOfIZCmqZvkcHH8wxJFmw+5lFSlWIi7QNCnTVAvMoZuTnFfdpyDkNyaj586Ng2VTIyVHNIxGwplUAEsrppCm8vYbUU2QSoMjHJxEFBiDcnAUEyFCpRI5OJFeOH0TV1K1yDeD6nhbP75giByPi7kFkwikkxnTwZGnkko4BnXtAwz5guPvaOpvFhoN5iQhJYdsjkYsZtoOQUCervZLwh2NJywVN1sPlEDWBFGeOHM4vJBcpBwcRdJRKl9H4/nFWTg06B0O0NbnHXunoD9SpSNRBOdAo3GBW1qZm7o6CYiaSSVPBKc0x0NxtoeQHkkjjomEAmNd11O7RFyQPw88eUaETaJza0k4gnOwaYIIjoQN/sBYSAIsLk/M80o5OIrxKZFvJlV6mtMUu40rNG4/CkEfuHMgvzqO1k3M/sYUFxgLJExRaZrGijnG57IvXOk2JhI6OM29w/R7AzgdWkIKQWOGpkXSVBIJjUWzvyMtfYRC40SdW+XT3/iDITMymIgl4qAcHMVEmKXi8kRwILJKFauLszAFxudKlUYQEZyUFRgLhHPQcQxCU5zREwdWzM0HYO+EDo58FVRCYFxdmJlwrfRjjkhJS1QqXlNkjDgY9AVp6BoceyczgiNP88i69gH8QZ0st5M5+YmZUk/xb4NiQsSXrb8ZhrrstSUKU4czXgSnWT79ja7rqkRcUFADjjTwD0JPvd3WmKyYYwi/x43g6HrkRiRRBEcIjFNuyOZYSFgq7nI6zB4y46apJGzyJ2ZQLSrLQdMSM6WuHBzF+KTnRipFJIriLCqbxMGRsES8sWeYniE/Lodm2p+yOF1QFu463rjHVlOiEQ7O0dZ+hv1jCI27ThrDZ53uyMgJCTjWpiqoTMwIzj7DIZWECYXG3v6Ioy9RiiqRRzQIlIOjmJhS+XQ4YujmsXEjOPKNaBDpqYWl2Xhc8kw2t43K84yfjbvttSOKslxDaBwM6WMLjc+EbS1bDi55xmyoHjhRlC4DzQGD7dDfMvn+cULocA6PVSouCiKySiFzkjEhcSSRh2wKlIOjmBgJdTgLSrLRNGM4Ykf/qEqq/lYYaAU0qVZDwsE5tzJF+9+MpvJ842fjG/baEcWkQmNh65zz42jV5IgKKpWiAtIyoGihsS1RmioSwRnLwZFvRAMkfg8cUA6OYjLMkQ3yRHAy3E6zj8xZaSqhvymsBbc8FSUHmlJ8BtVohJPQuEcuoXE4TbX39AQOTqU8Dk7PkN9sl7CgRJ7z3VYkbPgnSsXrOgYY9AVG/lFUUEmkvxn2B6nrMBznRJxBJVAOjmJixJdOounPEElTneXgiFWbRAJjUCXiZ1GyBFzp4O2FzuN2W2OyXDg4oyM4oWBELyTSaxIghrfOyc8gJz3NZmskQUKhcXG2kf7U9TG6sItrq0QRnONt/YR0yM9MoyQncYdYKwdHMTEl4WqR/hZjQrckCKHusdGl4uaIBnn0Nz1Dfk53GYMllYMTxpkG5SuNbYnSVCvmjiM0bj8K/gFIy5KqlHfP6W4AVlfl22qHVAjtnUQRHIjW4YzSd7XJV0El0lPnJHAFFSgHRzEZnhzIqzK2pRrZMM5MKgkjOAfDgtU5+RnkZapVtolIU52RR2hcnptOcbabYEg3PzcgIoauWAUOeUTie+q7AeXgjEBEcNqPgH/YXluiEA7OiFJxbx/0NBjbEjnOh5sTv4IKlIOjmAqm0FgeHc6YvXAC3kinWYlKxFWDv3GQsJJK0zQzTTVCaCycMInSUwBvhiM4q5SDEyG3EjIKQA9KtShbUjFGqbhIT2WXyVVBZUZwEld/A8rBUUyFUvmGboqKkfZ+L10D4cF6bYchFDAmoefJM+lZlByfqxyckQixbtNbEAxMvG8cEULjt6KFxhJWUDX1DNHS68Xp0Fg+R51bJpompQ5HRHAONUcNCjYFxvLob2BkiiqRUQ6OYnJEbliiCE62x2W2DxeNziIN/lYYFzlJOKAExmNTtBA8uRAYksp5PktoHPBFqvMkiuC82dANGDehTLfLXmNkQ0IdzsLSbJwOje5BP61iULA47yVqadHvDZiaQeXgKJIfCSM4ED2TKuzgNMunv/EFQhxtNVZDKkU1CofD0LSAVGmqszoatx6AoNeIDBbW2mxdhDfCDo7S34yBhBGc9DQn84uNUn5T3yVhBEfM+CvN8VCQJU9Dy5mgHBzF5Ii29ANtMNBhry1RRHQ4YdFeS3iVLZH+5mhrH/6gTm66K2EH1lmKiIhIJDSuyEunKCtKaNwYpb+RKDIYERir5pFnET10U6qRDZE0FSBlBCdZ0lOgHBzFVPBkQ/48Y1uiKI74Ah5o7DUuYmaJ+Lk2WjWSaIFxIpdbWobZ8E+eUvGzhMYSNvgLhnQzhba6qsBmaySkeDFoThjuht5Gu60xWSqExk29MNwLvWeMP0gUwRGVqcrBUaQOJfJ1NF49Lx8wxKD+7jMw1GnMoZFoNRSZIK5W2WMinIaW/UYVnCSsiNbhnJFPYHy0tY9BX5Ast1MN2RyLtPTIxHeJ0lSi7PpQc1+kgiqnAjLy7TNqFOaIhvLEP6+Ug6OYGqXyzaRaWJJNbrqLIX+Q04d2Gr8sWmTMo5GEyAwqpb8Zk/x5kFEIIb9UglARwTlyutXQ4ICUAuMVc/NwOlRkcEyi01SSIEY2HG/rJ9AcPq8kit5AZCCoiuAoUocS+YTGDofGmmojPN9xLKyTkEhgrOuRqdRKYDwOmhaVppJHhyM6Gqe17Tf6qWSVQu4cm62KsMcUGKv01LhIKDSek59BjseFP6jT2/CW8UuJHJzuQZ9Z4bVIOTiKlEGkfZr3SjUcUTg4kRJxeRyc011D9A0HcDsdLChJ/HCvZUg4WbwyL53CLDfnEp6TNed8uQTGDUJ/o1Kf42JGcORxcDRNM6M4wcZwZEmilLrQ38zJzyDbk/itB5SDo5gaZcshLdMQ7bXLM3hzTbXR/bOoP9zBuFyeGVRiwOaismzcLvVVGxcJRzYIofFKxwnjFxIJjAd9AXOekYrgTICYR9d5HHyD9toSxeLyHFwEyOt80/hF1UX2GhTFYVN/k/jRG1AOjmKqONNg7gXG9qlX7LUlitVV+WQ5/MzTw5USEkVwIgJjlZ6aEKFtaT8M3v6J940jK+bkskoLR3Ak0t/sO9NLSIeyXA/leel2myMvOWWQVQJ6SKompUvKc1mu1eEODRsjJYrlmUF1JIn0N6AcHMV0qH6b8VMiByfD7WRjSRdOTcfrLoCccrtNMlEzqKZITjnkVBo3oua37LbGZHWpkwWOJuMfElVQ7WnoAlSDvylh6nDkERovrcjhIkfY4Zp3idHwUhIOJ8kMKoE8/7MK+Zm3zvhZv12q5lnvzG8B4LR7gVQ6iYPmDCqlk5gUCdNUq111AJzWixl2y5MKerNB9b+ZMhLqcM4py+FCh5HmH6qQJz1lNrZEpagUqcjcC8HhMppTddfbbY3JClcDAG/65aly6R70cabbmOciRIWKCahcbfyUqJKquGc/AG+Fas3SWRkQFVSrlMB4cswIzn577Ygix+1krdPQDB7LXGmzNREONvXSNxwgx+NiSXlyRJ2Vg6OYOu7MiBZBojTVnGFDJ/FKfwV9w36brTEQ+pt5hZnkpqfZbE0CIGEllRa25a1QbWTwps209g1zpnsITYOVc/PtNkd+oh0cWaLObQfJpZ8B3cNu71y7rTF59YQxhuei+YVJ01tJOTiK6WGmqSRxcHQdd7vRMOtAaB5vhOfz2I2aID5NhOPceQKGuuy1RRCOJr2pLzBGNkiASE8tKs1OijJeyyk+Bxxp4O2RJ+ocXhzuDi3iYOuwzcZEEA7OxbVFNlsSO5SDo5ge1ZcYP09tt9cOQU8DeHsI4uSYPoddp+S4OSqB8TTJLISC+ca2DFGcgXbzhrgvNF+aCI4SGE8TlzvSSE+Whn/1xrXztdASDkqS+gyGdHac7ASUgzNlOjs7ufHGG8nNzSU/P59bbrmF/v7xy0Dr6urQNG3Mx69+9Stzv7H+/vOf/9zKt6IQVK01fnYchf5We20BUzzYm12LjzR5HBxVIj59RBRHBgencQ8A/vwF9JHJkZY+vIGgvTYRieCsUg7O1JFJaKzrZgTnNX0xR5r7CIXsT50daIzob5JpUWapg3PjjTeyf/9+XnjhBZ599lleeuklbrvttnH3r6qqoqmpacTjP/7jP8jOzubKK68cse9PfvKTEftt2rTJyreiEGQWQml4Wne9BFGc8KrMUWE09XqjvotA0N5Oy8P+IMdaDUf+3DnJc7GwHJkqqcLpKVfVGgoy0/AHdduFxqGQbs6gUhGcaSBTqXhXHfQ1oTvSOOA4hyF/kPpO+5sQJqP+Bix0cA4ePMiWLVv48Y9/zNq1a7n00kv57ne/y89//nMaG8ceX+90OikvLx/xePrpp3n/+99PdvbIuvz8/PwR+6Wnq4ZXcaM6rMORIU0VHqSXU30eOR4XA76gManXRo619hMI6RRkplGeq87LKSOT0DjsZGlzzjcHb9qdpjrRPkCfN0B6msOcSq2YAjJFcMKLQq3yPOaVFQORaK+dJKP+Bix0cLZv305+fj4XXHCB+bv169fjcDjYsWPHlI6xa9cu9uzZwy233HLW3+644w6Ki4u56KKLePTRR9FlUcinAjIJjc0IznJWz8sHsD1NFa2/0STqyyM9FSsBzWhD0Ndinx26HilXrzyPFWEHx26hsSgPXzEnD5dTySenjBjZ0HUSvDZrXkT1afU6MwonnAu7CIZ0diah/gYsdHCam5spLS0d8TuXy0VhYSHNzc1TOsYjjzzC0qVLueSSS0b8/r777uOXv/wlL7zwAtdddx3/+q//yne/+91xj+P1eunt7R3xUMwCITRu3gvDNv5fevuh86SxXbaCC8JzqV6328FR+puZ4cmBknDbejujOH1N0N8CmhPKV5oOzlun7XVwVHpqhmQVQU6Fsd1ywF5bTAfnbbx9kRHBeelIm40GhfU33uTT38AMHJzPfvaz4wqBxePQoUOzNmxoaIinnnpqzOjNF77wBd72trdx3nnncdddd/GZz3yGb3zjG+Me6/777ycvL898VFVVzdq+lCa3EgpqjNb6DTvts6P1AKBDVilkl3BBjdHZdbfNDs7+RuNGmGwXi7hgpqls1OEIDVDpUnBnmikqu4XGkQZ/+bbZkLCUhXWDdupw+lqMwZ9oULWWdQuKcDk06joGqe+wT4eTrPobmIGD86lPfYqDBw9O+KitraW8vJzW1pFVNoFAgM7OTsrLJ58X9Otf/5rBwUFuuummSfddu3Ytp0+fxuv1jvn3u+++m56eHvPR0NAwtTerGJ954SiOnWmq068bP8MTxFdX5ePQ4Ez3EE09Q7aYFArpHGwywuDLKlSn2WkjKqnsFBqb6anVAMwtyCDfZqHxsD9ottFXEZwZUB7uGHx6l302iKKMsnMhI5+c9DTOrzYWZS8etS+Kk6z6G5iBg1NSUsKSJUsmfLjdbtatW0d3dze7dkVOqD//+c+EQiHWrl076es88sgjXHPNNZSUlEy67549eygoKMDj8Yz5d4/HQ25u7oiHYpaY/XBsdHCOvWD8XPAuALI8LpaG00Kv19kTxWnoGqTfG8DtclBbkmWLDQnNnCihsV26OpEeC0eTNE0z01R2CY33N/YSCOkUZ7uZk59hiw0JTe1lxs9jf4KQTVWWZnoqIrl45znG/e1lm9JU0fqbdQuUgzNlli5dysaNG7n11lvZuXMnf/vb39i8eTM33HADlZWVAJw5c4YlS5awc+fINMexY8d46aWX+NjHPnbWcX//+9/z4x//mH379nHs2DEeeughvvrVr/Lxj3/cqreiGAvxJT2zC/w2dOP09kPdX43tRVeYv74gvCKyS2gsBMZLynNIU0LQ6VO23Jh3NthuNHGMN7oecXCiJogvt1loHK2/UcL1GTBvHbhzYKAVmvbYY4OIdosiDTB1OK8c78BvQ3sLU3+THlkcJhOWXoGffPJJlixZwuWXX85VV13FpZdeyg9/+EPz736/n8OHDzM4ODL/+OijjzJ37lyuuOKK0YckLS2NBx98kHXr1rF69Wp+8IMf8K1vfYt7773XyreiGE1hraF9Cfrs0UucfNF47fxqox17mDU1QmjcGX+bgH1Cf5OEF4u4kJYe0UvYkabqOmmMinC6I/2ewPYIjqm/UfOnZobLDQsuM7aPPh//1x/uiZSpR0VwllfmUZjlpt8bsGXMzPYT7QCsTUL9DVjs4BQWFvLUU0/R19dHT08Pjz766Ih+NjU1Nei6zmWXXTbieV/96lepr6/H4TjbvI0bN/LGG2/Q19dHf38/e/bs4Z//+Z/H3FdhIZoWlab6W/xfX1ykztlg2BJGRHAONvUx4A3E3axth41Qs8itK2aA2dHYBgdHOFVly42bYhjh4Bxutkdo/ObpbgCzFYJiBizaYPw88lz8X7t+B6AbC8OciAbV4dC4dKF91VSvnkjO8nCB8goUM8euuVS6DkfD+htx0QpTmZ9BZV46waiur/HiTPcQ+xt7cWhw+ZLSyZ+gGBs7G/6NkZ4CQ2icl2EIjY80jz9uxgo6B3ycClfZqAnis2DR3xk/G3fHf8yMmZ665Kw/iTTVy3EWGgeCIV5L0v43AuXgKGaOyCU37IRgHKMlLfuMZnCuDKh521l/jqSp4qvDeWG/0d/pgupCirLHFrwrpoApNN4Tf0HoKIGxwE6hsXDUa0uyyMtIi+trJxU55VCxytg+9qf4vrZYBFavO+tP7wgLjd8600PngC9uJh1oSm79DSgHRzEbys4FTy74+uLbX0KEmGvfCWlnV5SsCYfx4+7gHDS67/7dsrK4vm7SUbIEXOng7Q33DYkToaA5ZNNMk0Vh18iGParBX+ywI03lHzKKMWCEwFhQlpvOkvIcdB3+eqw9bmaJ8vBk1d+AcnAUs8HhhHkXG9vxTFOZ6amzRegAF4QjOG+c6iIYp0m9PUN+doTz2crBmSXOtEjfknimqdqPgn8A0rIiHZWjsGtkg3JwYsg5YQfn+J8h6I/Pa57ZBSE/ZJcbGpwxeIcN5eLJrr8B5eAoZku851INdsLpcFuBcRycJeU5ZLqd9HkDHGmJT2O2bYdbCYR0FpVmU1Os+t/MGjsmiwtRc8Uqw3kfRbTQ2BeIT+pM1/WIwFg5OLOn8jzILDKigw1Tm4k4a6LTU+OU+JtjG462xWWuYirob0A5OIrZEi00jkdjtmNbjRERpcsgf+yRGy6ng/PiPHjz+f1GeuqKc1X0JibYMbJBOFOjBMaCqsIMCrPc+IIhszma1ZzqGKR70I/b5WBJeXLqJOKKwwkLw2LjeKWpJhAYCy6sKSQ9zUFLr5cjLdaL2FNBfwPKwVHMlsrzDL3EYLsR4rcaUR4+TvRGsCY8eDMeDo43EGTbYaMq4++WTT6GRDEFhAam6a34CdhNgfHZ+hswhMYbzjU+39/uORMXk0T05tzKXNwudbmOCeeErx3x6IcTDETm9VWP7+CkpzlZO9+IpMSjXDwV9DegHBzFbHF5YM4FxrbVaapQMFL9cM6GCXddE+5DE4+Gf9uPdzDgC1Ka42HlHDV/KiYULTQE7IEhaJv98N5JCfigOSyUH8fBAdi02ujCvmVfM8N+6/vhiOZvqsFfDFnwbmNSfNsh6Dpl7Ws1vwW+fkjPM6LOExCdprKaVNDfgHJwFLFAlD5aLTQ+/ToMdRoXi7kXTbjrefPy0TRo6ByitdfaURIvHIhUTzmSeDUUVxyOSKpIzByzkrqXIeiFjMJxhaBgpBIq89Lp8wb4yyHre6mICM55qsFf7MgogKrwPESrozhiwGbVxcY5PQFiLtXOk52WOs+BqBSrcnAUismI1+BNcTFacDk4XRPumpuexuKyHMDacvFQSB/h4ChiyPLrjJ9vPGm9vmvPk5HXnGDWk8Oh8Z5wFOe3exotNckXCLG/UU0Qt4R4panGGLA5HgtLs6nIS8cbCLHDQo3X/sZe+r0BcpNcfwPKwVHEgrkXGSHfnnroOW3d6xwNiwInSU8JLqixfvDmW2d6aO3zku1xJeU0Xls59x8gLRM6jkZ0DFYw2AkHnzW2z/vQpLtvWj0HgD8faqVnyLpS44NNvfgCIQoy05hXmGnZ66QkQsN38iXwDU6870zR9UgEZwoOjqZpkTSVhTocob+5aH5RUutvQDk4iljgyYaKcN8Sq9JUvY1hjYQGC9dP6SkXVFvf0fiFA0b34ncuLsHjOru0WDELPDmwbJOx/cb/WPc6+/7XSE+VLY90up2AJeU5nFOWjS8Y4rl9zZaZ9cd9TYAhmFcTxGNM6TLInQuBYaj7qzWv0X4EBjuMjusVq6f0FLMfjoU6HOHgXFxbaNlryIJycBSxoTo8MsGqwZsilDxnDWQVT+kpQmi8/0wPQz5rctpmebhKT1mDiKjsfxp8A9a8xhs/jbzWFBwJTdO4NhzFecaiaqphf5BfvtYAwAcuHLsdgmIWaFpUmsqicnFxLZx7wYjBrRNx6cJiHBocaemnqWco5iYFgiFeqzMWfMmuvwHl4Chihdnwz6IIjuhePMX0FBgDEktzPARCkWZpsaSufYCjrf24HBqXLVbDNS2h+hJD9OvrhwO/jf3xm/dC0x5wpMGK90/5adesMnQ420900NwTexH7H95qomvQz5z8DN6tBrdagzm24XlrNF6npp6eEuRnus2Bqi8fif3YhlTS34BycBSxQjg4bYdgoCO2xw544fhfjO1J+t9Eo2mapTocIS5eW1uohiBahabB6huNbRFpiSVvhMXFS66CrKmvaKsKM7mgugBdh2ffir3Y+H9eNcqX/3HtvKTXSdjG/LeD02NoB61oRSAWe2PMn5qId4R1OC9akKZKJf0NKAdHESuyiowhiRD7KM6pvxkzgrLLp6SRiEY0/Hu9LvZVCcLBuUI197OWVR8EzWGcBx0xHL4Z8MFbvzC2V08uLh7NtedZk6bae7qHPQ3dpDk13n+BSk9ZhjvLcHIg9tVU3fXQ0wAOF1RN3NJiNEKH87dj7TGfpZdK+htQDo4illiVpjKHa66fkkYimgvDEZxXT3TS0e+NmUkd/V6zieB6pb+xlrw5RnM2gD1Pxe64R/7P6KuUUxE5/jS4ekUFLofGvjO9HGuNXXv9n4ajN1cur6AkxxOz4yrGIDpNFUtEeqpileFITYPVVfnkeFx0D/pjOrk+1fQ3oBwcRSyxqh+OmBmzaOr6G8GKOXksn5PLkD/ID18+ETOTth5qJaQbLfTn5GfE7LiKcRBi4z1PGR2tY4FIea364KR9lcaiMMttrrZ/F6MoTs+gn9++aRzrpnXVMTmmYgIWhedS1W+Hoe7YHdecPzW99BQYs/QuWRj7sQ2ppr8B5eAoYon4Mje9CQMxEsh1HIfO44YItPayaT9d0zQ+cfk5ADzxyqmYRXFUeirOLL7K6EDb1xjRY82G3sbI2A+h8ZkB14qmf282xmQK9K92NTDsD7GkPMesAlRYSOF8KD4H9CAc/3NsjhkKwoltxvY0BMbRCMc5lg7O9hTT34BycBSxJL/K6PegB2Hb/bE5psiNV6+D9JmtOi5fWsrKuXlGFOel2UdxhnxBs0+F6l4cJ1yeSJXTnhiIjd/8uTGVft46KF4448P83bIyMt1OTnUMsqehe1YmhUI6T+6oB+Cf1lWr3jfxQhQuHI3RSJA3fgpddcZImZpLZ3SIdywyHJw3GrrpHY5NM0mhv0mlhqTKwVHEliu+bPx8/SfQGoPKhFmkpwSapvGJ9YsAeGL7KdpnGcV5+Wgbw/4Qc/IzWFqRM6tjKaaBSFMd+oPRfXim6PrI3jezINPtMnsgzXZ0w9+Ot3OyfYBsj8vslqyIA8LBOfYChEKzO5a3D/4cvga+8y7DyZkBVYWZ1BZnEQzpvHJs9lWp3kCQ18z5U6khMAbl4Chizfy3w5K/N6I4z39+dsfy9keaZU2j/81YvGtxKauq8hnyB/nBi7OrxImePaVW2XGkYiWUr4SgD/b+aubHqX/VSHumZUU6Jc8C0fTv2bcaCQRnfoP8n+2GuPi68+eQ5Zm+JkgxQ+atA3cODLRB4xuzO9Zf/wsGWqFwAVx466wOFcvp4g/+5TgDviClOR6WlKeG/gaUg6Owgr+7z9DMHHshonOYCSe2GTezgvlQNPM0AoyM4vzPq6do7ZtZc7ZgSGdreIr0Feeq9FTcERGX2YxuENGbc//BGDMySy5dVExhlpv2fh9/Oz6z1XZj9xB/Omg4zv+kxMXxxeWGBe8ytmdTLt5dD698z9i+4ktT7l48HtE6nNnouw439/HQtmMA3POeZSmjvwHl4CisoGgBXHSbsf3c5yEYmNlxxMVm0RXTLg8fi8vOKWF1VT7D/hA/eHFmWpxdp7roHPCRl5HGRTWpE+qVhhXXg9Md7kD85vSf7+03xj7ArNNTgjSng6tXVADw2xlWU/1sZz0hHdbVFrGwVKU9446IEM9mbMOf/sOYaVbzdkMUP0suri0izalxumuIuo6ZDQQNhnTu+t+38Ad11i8tM8/TVEE5OApreOenjaqXtoPwxhPTf76uR41nmHr34onQNI1P/p1RUfXTGUZxxHDNdy8pxeVUX5+4k1kIS642tkUX4ulw4BmjaWThAph3cczM2nSeUU313L7mac898wVC/GynMXdKRW9sYmG4XLzxDehrmf7zG16Dfb8GNNjwlZgsyLI8LrOS7k8HZmAT8Pgrdexp6CbH4+LLm5anXEpdXaEV1pBRAJfdbWz/+SswPM2GVc17jZLgtEyonlklwli8Y1Ex58/LxxsI8fC26UVxdF2PKg9X6SnbEF2H3/oF+KfppJri4htjchMSnD+vgLkFGQz4gmw9NL2b0Zb9zbT3eynN8aiqPLvIKYtM/D42zWoqXYfnPmdsr75x2t3WJ0K0ofjm84fZdWp6wvqGzkG+8dxhAD571RLK89JjZleioBwchXVc8FEoWgSD7fDyt6b+vFAIdv7Q2K69DNJi98U0tDhGFOfJHado7Z36DfJYaz91HYO4XQ4zP66wgQXvgpxKGO6Gw3+c+vPajxkN3TSH0dwvhhgTxo0ozjNvTK+a6qdhcfEHL5pHmooK2odIU+1+AnzTSAnt/w2c3mmI1t89y8KKUdy0rprLl5TiDYT46GOvc6y1b0rP03Wdzz29lyF/kIvmF/LBC+fF1K5EQX2bFNbhTIuUjb/6faM3xGQEfPD0P0dEpLNowjYeb19UzJrqAryBEN/fNvWKqufD0Zu3LShSVS524nDC6n80tvdMI00l9l24HnIrY26WKO1+8Ugr3YO+KT3nUHMvO+s6cTo0/nFtat6EpGHF9eBKh4Yd8MQ1Uxsa7B+GF75obF/6CciNrcbF5XTwvX88n/Pm5dMz5OfDj742pen1T79xhpePtuN2Ofjae1fgSCFhcTTKwVFYyzkbYP47jWqoP31x4n2He+Gp62HvL40hdZsegqV/H3OTNE3jk+EozlM76ye9YARDOj986Tjf3noUgL9T3YvtRzg4x7ZCz+nJ9w8G4M2fGdsxEhePZlFZDksrcvEHdf64t3lKzxFzpzacW0ZZbuqlEKSieBHc9FtIz4fTr8GjV0y+KHv1+8Y08tw5sG6zJWZluJ088uELqS3J4kz3EB/5yU56hsZv/tfe7+W+Zw8A8O+XL6K2ZPaVgomKcnAU1qJpsOGrgGZUr9S/OvZ+fS3w2FVGaXhaFnzwF5GbmAW8bWERF9YU4AuEzBLKsTjR1s/1D7/CV/94CF8gxGWLS3jv+aoJm+0ULYDqtwF6xHGZiON/hr4myCiEc660zKxNIk01hWqqvmE/T+829vvQxUpcLAXzLoZbnoe8Kug4Bo9cMX61Xn9rJPV++b3gzrTMrMIsN4/ffBElOR4ONfdx2xOvM+wfW8z+H78/QPegn2UVudz2jlrLbEoElIOjsJ7y5XD+Pxnbz33u7G6h7UfhkfWGsDirBG7+gzE53EKiozg/29lAU8/QiL8HQzo/fvkEV377ZXbXd5PtcfG1967gJx+5kPQ0p6W2KaaI2RPnSUPoOREi5bnyA7PuTzIR16yuRNNg58lOHtp2nF2nOse9ET39xhkGfEEWlGSxLkWmOycEJYvhlhegbDn0t8BPrh57/tlfvgK+Pqg830hvWUxVYSaP33wROR4XO052cucv9xAMjTzvtx5s4fdvNuLQ4IHrVqa8psuyd/+Vr3yFSy65hMzMTPLz86f0HF3Xueeee6ioqCAjI4P169dz9OjREft0dnZy4403kpubS35+Prfccgv9/f0WvANFTHnX58GdDWd2hcspwzS8ZqySuuuhsNZYPVWeFxeT1i0o4qL5hfiCIR6K0uLUtQ9www+38+U/HMQbCHHpwmKe++Q7uOGieSlXZik1y641zqmuk4Zu6w//b5zHp+Dw/xnPOS/2mq5oKvIyuCQ86+eBLYe47qHtrPzi82x68G986dkD/OGtJpp6htB13exc/E8Xq7lT0pFbATf/0ehp4+uDJ98Hb/0y8veW/YYYGWDj/eCIjyOxrDKXH9y0BrfTwR/3NnPf7/ebTQD7hv18/pl9AHzs7bWsmDuzMRHJhKbHYgTuGNx7773k5+dz+vRpHnnkEbq7uyd9zgMPPMD999/P448/zvz58/nCF77A3r17OXDgAOnpRn76yiuvpKmpiR/84Af4/X5uvvlmLrzwQp566qkp29bb20teXh49PT3k5qZO22rbeemb8OcvGfnqza8b6ahffxQCQ8Yq6B9/CdnxrU7afryDD/7oVdxOB3/59GU8v7+ZB7YcYtgfIsvt5P+7ehkfvKhK3YBk5Xf/Brsfn9q+Favhn1+01ByA1r5hfrP7DLtPdbG7vov2/rMFxyU5Htr6vGS6nbz6ucvJTU+z3C7FDAh44ZnbYd//Gv9e/x/wtn+H/9lkXL+WbYL3T/H8iyHPvtXIx3/2BroOn9m4mH+9bCFfeGYf//PqKaqLMtny7+8gw52ckebp3L8tc3AEjz32GJ/4xCcmdXB0XaeyspJPfepT/L//9/8A6OnpoaysjMcee4wbbriBgwcPsmzZMl577TUuuOACALZs2cJVV13F6dOnqaycWmWEcnBswj8E37sQehqM8u+TLxkTnRddAdc/Bu4sW8y64YfbefVEJ3kZaaZ475IFRTxw3UqqCq3LqytiwGAn7PrJ5P1wHE5Y/r5ZTQ6fCbqu09A5xO56w9nZdaqLQ819ZmrhxrXz+Mo/rIirTYppEgrBC1+A7eExDAvXGyNonG7Y/BoU1Nhi1qN/PWmKiW9+Ww0/+VsdAE99bC2XLCy2xaZ4MJ37tzS1ridPnqS5uZn16yPai7y8PNauXcv27du54YYb2L59O/n5+aZzA7B+/XocDgc7duzgH/7hH+wwXTFV0jJg/Rfhf28xVj9g6Cj+/tvgtO9U/MT6c7jhh6/SM+Qn0+3k7quWcuNF81K2tDKhyCyEt3/KbivGRdM05hVlMq8ok03nGeL0QV+ANxt6qO8c4OqVsS9XV8QYh8PoTpxTAc//f5H5ehffbptzA/DRS+fT0jfMD148YTo3H7igKqmdm+kijYPT3GyUVZaVjezkWVZWZv6tubmZ0tLSEX93uVwUFhaa+4yF1+vF6/Wa/+7t7Y2V2Yrpsvw62PUY1L0M7/gMvOtzMe0oOxMuri3ijnctoKFziE9vWKyiNgpLyXS7WLegiHULlLA4obhkM+SUw9P/AtllUjjWd21YQluvl9+8cYaSHA+fu2qp3SZJxbQcnM9+9rM88MADE+5z8OBBlixZMiujYs3999/Pf/zHf9hthgIMZ+ZD/wt9zVAgT2nspzfIdc4qFAoJWfE+I72uOSDdfhGvw6HxwPtWcsnCYi6oLiAvU2m5opmWg/OpT32Kj3zkIxPuU1s7s7r78nKjeVpLSwsVFZFukC0tLaxevdrcp7W1dcTzAoEAnZ2d5vPH4u677+bOO+80/93b20tVVdWM7FTEAJdHKudGoVAopkyWXCmgNKeD962Za7cZUjItB6ekpISSEmuqXObPn095eTlbt241HZre3l527NjB7bffDsC6devo7u5m165drFmzBoA///nPhEIh1q5dO+6xPR4PHo/HErsVCoVCoVDIh2XF+/X19ezZs4f6+nqCwSB79uxhz549I3rWLFmyhKeffhoID0H8xCf48pe/zO9+9zv27t3LTTfdRGVlJZs2bQJg6dKlbNy4kVtvvZWdO3fyt7/9jc2bN3PDDTdMuYJKoVAoFApF8mOZyPiee+7h8ccj/QHOO89o3vaXv/yFyy67DIDDhw/T09Nj7vOZz3yGgYEBbrvtNrq7u7n00kvZsmWL2QMH4Mknn2Tz5s1cfvnlOBwOrrvuOr7zne9Y9TYUCoVCoVAkIJb3wZER1QdHoVAoFIrEYzr379QeVKFQKBQKhSIpUQ6OQqFQKBSKpEM5OAqFQqFQKJIO5eAoFAqFQqFIOpSDo1AoFAqFIulQDo5CoVAoFIqkQzk4CoVCoVAokg7l4CgUCoVCoUg6lIOjUCgUCoUi6bBsVIPMiObNvb29NluiUCgUCoViqoj79lSGMKSkg9PX1wdAVVWVzZYoFAqFQqGYLn19feTl5U24T0rOogqFQjQ2NpKTk4OmaTE9dm9vL1VVVTQ0NCT9nKtUeq+g3m+yo95v8pJK7xWS+/3quk5fXx+VlZU4HBOrbFIyguNwOJg7d66lr5Gbm5t0J9Z4pNJ7BfV+kx31fpOXVHqvkLzvd7LIjUCJjBUKhUKhUCQdysFRKBQKhUKRdCgHJ8Z4PB7uvfdePB6P3aZYTiq9V1DvN9lR7zd5SaX3Cqn3fscjJUXGCoVCoVAokhsVwVEoFAqFQpF0KAdHoVAoFApF0qEcHIVCoVAoFEmHcnAUCoVCoVAkHcrBmQEPPvggNTU1pKens3btWnbu3Dnh/r/61a9YsmQJ6enprFixgj/+8Y9xsnR23H///Vx44YXk5ORQWlrKpk2bOHz48ITPeeyxx9A0bcQjPT09ThbPnC9+8Ytn2b1kyZIJn5OonytATU3NWe9X0zTuuOOOMfdPtM/1pZde4j3veQ+VlZVomsYzzzwz4u+6rnPPPfdQUVFBRkYG69ev5+jRo5Med7rf/Xgx0fv1+/3cddddrFixgqysLCorK7nppptobGyc8Jgz+U7Ei8k+34985CNn2b5x48ZJjyvj5zvZex3re6xpGt/4xjfGPabMn20sUQ7ONPnFL37BnXfeyb333svu3btZtWoVGzZsoLW1dcz9X3nlFT74wQ9yyy238MYbb7Bp0yY2bdrEvn374mz59HnxxRe54447ePXVV3nhhRfw+/1cccUVDAwMTPi83NxcmpqazMepU6fiZPHsOPfcc0fY/de//nXcfRP5cwV47bXXRrzXF154AYDrr79+3Ock0uc6MDDAqlWrePDBB8f8+9e//nW+853v8PDDD7Njxw6ysrLYsGEDw8PD4x5zut/9eDLR+x0cHGT37t184QtfYPfu3fzmN7/h8OHDXHPNNZMedzrfiXgy2ecLsHHjxhG2/+xnP5vwmLJ+vpO91+j32NTUxKOPPoqmaVx33XUTHlfWzzam6IppcdFFF+l33HGH+e9gMKhXVlbq999//5j7v//979evvvrqEb9bu3at/s///M+W2mkFra2tOqC/+OKL4+7zk5/8RM/Ly4ufUTHi3nvv1VetWjXl/ZPpc9V1Xf/3f/93fcGCBXooFBrz74n6ueq6rgP6008/bf47FArp5eXl+je+8Q3zd93d3brH49F/9rOfjXuc6X737WL0+x2LnTt36oB+6tSpcfeZ7nfCLsZ6vx/+8If1a6+9dlrHSYTPdyqf7bXXXqu/+93vnnCfRPlsZ4uK4EwDn8/Hrl27WL9+vfk7h8PB+vXr2b59+5jP2b59+4j9ATZs2DDu/jLT09MDQGFh4YT79ff3U11dTVVVFddeey379++Ph3mz5ujRo1RWVlJbW8uNN95IfX39uPsm0+fq8/n46U9/ykc/+tEJh88m6uc6mpMnT9Lc3Dzi88vLy2Pt2rXjfn4z+e7LTE9PD5qmkZ+fP+F+0/lOyMa2bdsoLS1l8eLF3H777XR0dIy7b7J8vi0tLfzhD3/glltumXTfRP5sp4pycKZBe3s7wWCQsrKyEb8vKyujubl5zOc0NzdPa39ZCYVCfOITn+Btb3sby5cvH3e/xYsX8+ijj/Lb3/6Wn/70p4RCIS655BJOnz4dR2unz9q1a3nsscfYsmULDz30ECdPnuTtb387fX19Y+6fLJ8rwDPPPEN3dzcf+chHxt0nUT/XsRCf0XQ+v5l892VleHiYu+66iw9+8IMTDmKc7ndCJjZu3MgTTzzB1q1beeCBB3jxxRe58sorCQaDY+6fLJ/v448/Tk5ODu9973sn3C+RP9vpkJLTxBXT54477mDfvn2T5mnXrVvHunXrzH9fcsklLF26lB/84Ad86UtfstrMGXPllVea2ytXrmTt2rVUV1fzy1/+ckqroUTmkUce4corr6SysnLcfRL1c1WMxO/38/73vx9d13nooYcm3DeRvxM33HCDub1ixQpWrlzJggUL2LZtG5dffrmNllnLo48+yo033jhpAUAif7bTQUVwpsH/377dhELXhnEAv54eM4ONKcOMaDSKjYWYUlYKWVAs2cgGpWahKDaa7CxkYyGrsZSNFItpZoySsGBkQkLTlPJRylfjo8z/Xbw5PcN8PKOHcU7/X53FnHPfd/c117nqmtMZk8kkv3//lsvLy5jzl5eXYrFY4s6xWCxpjf+JHA6HLC0tid/vl5KSkrTm6nQ6qa6ulpOTky/a3dcwGo1SUVGRcN9ayKuISDgcFq/XKz09PWnNU2teRUTJUTr5+0zt/zRvzU04HBaPx5P06U08qWriJysrKxOTyZRw71rI79ramhwdHaVdyyLqzm0ybHDSoNfrxW63i8/nU85Fo1Hx+Xwxv27/VFdXFzNeRMTj8SQc/5MAEIfDIQsLC7KysiI2my3tNV5fXyUYDEpRUdEX7PDrPDw8yOnpacJ9qzmvf3K5XFJYWCitra1pzVNrXkVEbDabWCyWmPzd3d3J1tZWwvx9pvZ/krfm5vj4WLxer+Tn56e9Rqqa+MnOzs7k+vo64d7Vnl+R/5/E2u12qaqqSnuumnObVKbfclabubk5GAwGzM7O4uDgAH19fTAajbi4uAAAdHV1YWRkRBm/vr6OrKwsTExM4PDwEE6nEzqdDsFgMFMh/LX+/n7k5eVhdXUV5+fnyhGJRJQx7+MdGxuD2+3G6ekptre30dnZiezsbOzv72cihL82ODiI1dVVhEIhrK+vo6mpCSaTCVdXVwC0ldc3r6+vsFqtGB4e/nBN7Xm9v79HIBBAIBCAiGBychKBQED519D4+DiMRiMWFxext7eH9vZ22Gw2PD4+Kms0NDRgampK+Zyq9jMpWbwvLy9oa2tDSUkJdnd3Y2r5+flZWeN9vKlqIpOSxXt/f4+hoSFsbGwgFArB6/WipqYG5eXleHp6UtZQS35T3csAcHt7i9zcXExPT8ddQ025/ZfY4HzC1NQUrFYr9Ho9amtrsbm5qVyrr69Hd3d3zPj5+XlUVFRAr9ejsrISy8vL37zjzxGRuIfL5VLGvI93YGBA+W7MZjNaWlqws7Pz/ZtPU0dHB4qKiqDX61FcXIyOjg6cnJwo17WU1zdutxsigqOjow/X1J5Xv98f9959iykajWJ0dBRmsxkGgwGNjY0fvofS0lI4nc6Yc8lqP5OSxRsKhRLWst/vV9Z4H2+qmsikZPFGIhE0NzejoKAAOp0OpaWl6O3t/dCoqCW/qe5lAJiZmUFOTg5ubm7irqGm3P5LvwDgSx8REREREX0zvoNDREREmsMGh4iIiDSHDQ4RERFpDhscIiIi0hw2OERERKQ5bHCIiIhIc9jgEBERkeawwSEiIiLNYYNDREREmsMGh4iIiDSHDQ4RERFpDhscIiIi0pz/AENFOrGWVGDeAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "x = np.linspace(0,6*np.pi)\n",
    "a=1\n",
    "plt.plot(x,np.sin(x),x,np.cos(x))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 程序设计语言：机器语言、汇编语言、高级语言\n",
    "## 编译和解释\n",
    "编译：fortran C C++ C#\n",
    "解释：basic JavaScript PHP \n",
    "Python？？？\n",
    "Python语言执行的几种方式：\n",
    "\n",
    "分析程序执行过程-IPO：  \n",
    "a. Input模块：  \n",
    "b. Process模块：  \n",
    "c. Output模块：  \n",
    "\n",
    "\n",
    "\n",
    "[返回](#backup)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id = Section2> </a>\n",
    "## 2.2 程序实例\n",
    "\n",
    "<p><a href=\"https://yanghailin.blog.csdn.net/article/details/81126087?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-5.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-5.no_search_link\">\n",
    "this is example of python</a></p"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "有四个数字：1、2、3、4，能组成多少个互不相同且无重复数字的三位数？各是多少？\n",
    "\n",
    "要素"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "24\n",
      "['123', '124', '132', '134', '142', '143', '213', '214', '231', '234', '241', '243', '312', '314', '321', '324', '341', '342', '412', '413', '421', '423', '431', '432']\n"
     ]
    }
   ],
   "source": [
    "L=[]\n",
    "a=[1,2,3,4]\n",
    " \n",
    "#for i in range(len(a)):\n",
    " \n",
    "for val_1 in a:   #   for(i=1;i<n;I++)\n",
    "    for val_2 in a:\n",
    "        for val_3 in a:\n",
    "            if(val_1 == val_2 or val_1 == val_3 or val_2 == val_3):\n",
    "                continue;\n",
    "            else:\n",
    "                L.append(str(val_1)+str(val_2)+str(val_3))\n",
    " \n",
    " \n",
    "print(len(L)) \n",
    "print (L)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1 2 3 n= 1\n",
      "1 2 4 n= 2\n",
      "1 3 2 n= 3\n",
      "1 3 4 n= 4\n",
      "1 4 2 n= 5\n",
      "1 4 3 n= 6\n",
      "2 1 3 n= 7\n",
      "2 1 4 n= 8\n",
      "2 3 1 n= 9\n",
      "2 3 4 n= 10\n",
      "2 4 1 n= 11\n",
      "2 4 3 n= 12\n",
      "3 1 2 n= 13\n",
      "3 1 4 n= 14\n",
      "3 2 1 n= 15\n",
      "3 2 4 n= 16\n",
      "3 4 1 n= 17\n",
      "3 4 2 n= 18\n",
      "4 1 2 n= 19\n",
      "4 1 3 n= 20\n",
      "4 2 1 n= 21\n",
      "4 2 3 n= 22\n",
      "4 3 1 n= 23\n",
      "4 3 2 n= 24\n"
     ]
    }
   ],
   "source": [
    "n=0\n",
    "for i in range(1,5):\n",
    "    for j in range(1,5):\n",
    "        for k in range(1,5):\n",
    "            if( i != k ) and (i != j) and (j != k):\n",
    "                n=n+1\n",
    "                print (i,j,k,\"n=\",n)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "企业发放的奖金根据利润提成。\n",
    "利润(I)低于或等于10万元时，奖金可提10%；\n",
    "利润高于10万元，低于20万元时，低于10万元的部分\n",
    "按10%提成，高于10万元的部分，可提成7.5%；\n",
    "20万到40万之间时，高于20万元的部分，可提成5%；\n",
    "40万到60万之间时高于40万元的部分，可提成3%；\n",
    "60万到100万之间时，高于60万元的部分，可提成1.5%;\n",
    "高于100万元时,超过100万元的部分按1%提成。\n",
    "从键盘输入当月利润I，求应发放奖金总数？\n",
    " "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "profit = 0\n",
    "I = int(input(\"please input: \"))\n",
    "if(I<=10):\n",
    "    profit = 0.1 * I\n",
    "elif(I <= 20):\n",
    "    profit = 10 *0.1 + (I - 10)*0.075\n",
    "elif(I <=40):\n",
    "    profit = 10 * 0.1 + (20 - 10)*0.075 + (I - 20)*0.05\n",
    "elif(I <= 60):\n",
    "    profit = 10 * 0.1 + (20 - 10)*0.075 + (40 - 20)*0.05 + (I - 40)*0.03\n",
    "elif(I <= 100):\n",
    "    profit = 10 * 0.1 + (20 - 10)*0.075 + (40 - 20)*0.05 + (60 - 40)*0.03 + (I - 60)*0.015\n",
    "else : \n",
    "    profit = 10 * 0.1 + (20 - 10)*0.075 + (40 - 20)*0.05 + (60 - 40)*0.03 + (100 - 60)*0.015 + (I -100)*0.01\n",
    "    \n",
    "print (\"profit=\",profit)\n",
    "        "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.2\n",
      "profit= 0.2\n"
     ]
    }
   ],
   "source": [
    "i = int(input('净利润:'))\n",
    "arr = [1000000,600000,400000,200000,100000,0]\n",
    "rat = [0.01,0.015,0.03,0.05,0.075,0.1]\n",
    "r = 0\n",
    "for idx in range(0,6):\n",
    "    if i>arr[idx]:\n",
    "        r+=(i-arr[idx])*rat[idx]#r=r+nnn\n",
    "        print((i-arr[idx])*rat[idx])\n",
    "        i=arr[idx]\n",
    "print (\"profit=\",r)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Python 数字类型转换\n",
    "有时候，我们需要对数据内置的类型进行转换，数据类型的转换，你只需要将数据类型作为函数名即可。\n",
    "\n",
    "int(x) 将x转换为一个整数。\n",
    "\n",
    "float(x) 将x转换到一个浮点数。\n",
    "\n",
    "complex(x) 将x转换到一个复数，实数部分为 x，虚数部分为 0。\n",
    "\n",
    "complex(x, y) 将 x 和 y 转换到一个复数，实数部分为 x，虚数部分为 y。x 和 y 是数字表达式。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id=Section3></a>\n",
    "## 2.3程序的基本结构\n",
    "结构化程序的三大基本结构：\n",
    "\n",
    "a.顺序结构  \n",
    "b.分支结构  \n",
    "c.循环结构  \n",
    "\n",
    "\n",
    "\n",
    "\n",
    "[返回](#backup)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id=Section4></a>\n",
    "## 2.4顺序结构\n",
    "\n",
    "### 数学函数\n",
    "<table><tr>\n",
    "<th>函数</th><th>返回值 ( 描述 )</th></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-abs.html\" rel=\"noopener noreferrer\">abs(x)</a></td><td>返回数字的绝对值，如abs(-10) 返回 10</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-ceil.html\" rel=\"noopener noreferrer\">ceil(x) </a></td><td>返回数字的上入整数，如math.ceil(4.1) 返回 5</td></tr>\n",
    "<tr><td><p>cmp(x, y)</p></td>\n",
    "<td>如果 x &lt; y 返回 -1, 如果 x == y 返回 0, 如果 x &gt; y 返回 1。 <strong style=\"color:red\">Python 3 已废弃，使用 (x&gt;y)-(x&lt;y) 替换</strong>。 </td>\n",
    "</tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-exp.html\" rel=\"noopener noreferrer\">exp(x) </a></td><td>返回e的x次幂(e<sup>x</sup>),如math.exp(1) 返回2.718281828459045</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-fabs.html\" rel=\"noopener noreferrer\">fabs(x)</a></td><td>返回数字的绝对值，如math.fabs(-10) 返回10.0</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-floor.html\" rel=\"noopener noreferrer\">floor(x) </a></td><td>返回数字的下舍整数，如math.floor(4.9)返回 4</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-log.html\" rel=\"noopener noreferrer\">log(x) </a></td><td>如math.log(math.e)返回1.0,math.log(100,10)返回2.0</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-log10.html\" rel=\"noopener noreferrer\">log10(x) </a></td><td>返回以10为基数的x的对数，如math.log10(100)返回 2.0</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-max.html\" rel=\"noopener noreferrer\">max(x1, x2,...) </a></td><td>返回给定参数的最大值，参数可以为序列。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-min.html\" rel=\"noopener noreferrer\">min(x1, x2,...) </a></td><td>返回给定参数的最小值，参数可以为序列。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-modf.html\" rel=\"noopener noreferrer\">modf(x) </a></td><td>返回x的整数部分与小数部分，两部分的数值符号与x相同，整数部分以浮点型表示。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-pow.html\" rel=\"noopener noreferrer\">pow(x, y)</a></td><td> x**y 运算后的值。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-round.html\" rel=\"noopener noreferrer\">round(x [,n])</a></td><td><p>返回浮点数 x 的四舍五入值，如给出 n 值，则代表舍入到小数点后的位数。</p>\n",
    "<p><strong>其实准确的说是保留值将保留到离上一位更近的一端。</strong></p>\n",
    "</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-sqrt.html\" rel=\"noopener noreferrer\">sqrt(x) </a></td><td>返回数字x的平方根。</td></tr>\n",
    "</table>\n",
    "\n",
    "### 随机数函数\n",
    "随机数可以用于数学，游戏，安全等领域中，还经常被嵌入到算法中，用以提高算法效率，并提高程序的安全性。\n",
    "\n",
    "Python包含以下常用随机数函数：\n",
    "\n",
    "<table><tr>\n",
    "<th>函数</th><th>描述</th></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-choice.html\" rel=\"noopener noreferrer\">choice(seq)</a></td><td>从序列的元素中随机挑选一个元素，比如random.choice(range(10))，从0到9中随机挑选一个整数。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-randrange.html\" rel=\"noopener noreferrer\">randrange ([start,] stop [,step]) </a></td><td>从指定范围内，按指定基数递增的集合中获取一个随机数，基数默认值为 1</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-random.html\" rel=\"noopener noreferrer\">random() </a></td><td> 随机生成下一个实数，它在[0,1)范围内。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-seed.html\" rel=\"noopener noreferrer\">seed([x]) </a></td><td>改变随机数生成器的种子seed。如果你不了解其原理，你不必特别去设定seed，Python会帮你选择seed。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-shuffle.html\" rel=\"noopener noreferrer\">shuffle(lst) </a></td><td>将序列的所有元素随机排序</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-uniform.html\" rel=\"noopener noreferrer\">uniform(x, y)</a></td><td>随机生成下一个实数，它在[x,y]范围内。</td></tr>\n",
    "</table>\n",
    "\n",
    "### 三角函数\n",
    "Python包括以下三角函数：\n",
    "<table><tr>\n",
    "<th>函数</th><th>描述</th></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-acos.html\" rel=\"noopener noreferrer\">acos(x)</a></td><td>返回x的反余弦弧度值。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-asin.html\" rel=\"noopener noreferrer\">asin(x)</a></td><td>返回x的反正弦弧度值。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-atan.html\" rel=\"noopener noreferrer\">atan(x)</a></td><td>返回x的反正切弧度值。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-atan2.html\" rel=\"noopener noreferrer\">atan2(y, x)</a></td><td>返回给定的 X 及 Y 坐标值的反正切值。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-cos.html\" rel=\"noopener noreferrer\">cos(x)</a></td><td>返回x的弧度的余弦值。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-hypot.html\" rel=\"noopener noreferrer\">hypot(x, y)</a></td><td>返回欧几里德范数 sqrt(x*x + y*y)。 </td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-sin.html\" rel=\"noopener noreferrer\">sin(x)</a></td><td>返回的x弧度的正弦值。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-tan.html\" rel=\"noopener noreferrer\">tan(x)</a></td><td>返回x弧度的正切值。</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-degrees.html\" rel=\"noopener noreferrer\">degrees(x)</a></td><td>将弧度转换为角度,如degrees(math.pi/2) ，  返回90.0</td></tr>\n",
    "<tr><td><a target=\"_blank\" href=\"/python3/python3-func-number-radians.html\" rel=\"noopener noreferrer\">radians(x)</a></td><td>将角度转换为弧度</td></tr>\n",
    "</table>\n",
    "\n",
    "### 数学常量\n",
    "\n",
    "<table><tr>\n",
    "<th>常量</th><th>描述</th></tr>\n",
    "<tr><td>pi</td><td>数学常量 pi（圆周率，一般以π来表示）</td></tr>\n",
    "<tr><td>e</td><td>数学常量 e，e即自然常数（自然常数）。</td></tr>\n",
    "</table>\n",
    "\n",
    "[返回](#backup)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "绘制计算圆周长的流程图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<!-- Generated by graphviz version 12.1.2 (20240928.0832)\n",
       " -->\n",
       "<!-- Title: 顺序结构 Pages: 1 -->\n",
       "<svg width=\"214pt\" height=\"476pt\"\n",
       " viewBox=\"0.00 0.00 214.11 476.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 472)\">\n",
       "<title>顺序结构</title>\n",
       "<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-472 210.11,-472 210.11,4 -4,4\"/>\n",
       "<!-- 1 -->\n",
       "<g id=\"node1\" class=\"node\">\n",
       "<title>1</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"130.06,-468 76.06,-468 76.06,-432 130.06,-432 130.06,-468\"/>\n",
       "<text text-anchor=\"middle\" x=\"103.06\" y=\"-444.95\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Start</text>\n",
       "</g>\n",
       "<!-- 2 -->\n",
       "<g id=\"node2\" class=\"node\">\n",
       "<title>2</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"206.11,-396 42.17,-396 0,-360 163.94,-360 206.11,-396\"/>\n",
       "<text text-anchor=\"middle\" x=\"103.06\" y=\"-372.95\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">input Radius =?</text>\n",
       "</g>\n",
       "<!-- 1&#45;&gt;2 -->\n",
       "<g id=\"edge1\" class=\"edge\">\n",
       "<title>1&#45;&gt;2</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M103.06,-431.7C103.06,-424.41 103.06,-415.73 103.06,-407.54\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"106.56,-407.62 103.06,-397.62 99.56,-407.62 106.56,-407.62\"/>\n",
       "</g>\n",
       "<!-- 3 -->\n",
       "<g id=\"node3\" class=\"node\">\n",
       "<title>3</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"144.81,-324 61.31,-324 61.31,-288 144.81,-288 144.81,-324\"/>\n",
       "<text text-anchor=\"middle\" x=\"103.06\" y=\"-300.95\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Print Radius</text>\n",
       "</g>\n",
       "<!-- 2&#45;&gt;3 -->\n",
       "<g id=\"edge2\" class=\"edge\">\n",
       "<title>2&#45;&gt;3</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M103.06,-359.7C103.06,-352.41 103.06,-343.73 103.06,-335.54\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"106.56,-335.62 103.06,-325.62 99.56,-335.62 106.56,-335.62\"/>\n",
       "</g>\n",
       "<!-- 4 -->\n",
       "<g id=\"node4\" class=\"node\">\n",
       "<title>4</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"154.93,-252 51.18,-252 51.18,-216 154.93,-216 154.93,-252\"/>\n",
       "<text text-anchor=\"middle\" x=\"103.06\" y=\"-228.95\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Caculating Area</text>\n",
       "</g>\n",
       "<!-- 3&#45;&gt;4 -->\n",
       "<g id=\"edge3\" class=\"edge\">\n",
       "<title>3&#45;&gt;4</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M103.06,-287.7C103.06,-280.41 103.06,-271.73 103.06,-263.54\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"106.56,-263.62 103.06,-253.62 99.56,-263.62 106.56,-263.62\"/>\n",
       "</g>\n",
       "<!-- 5 -->\n",
       "<g id=\"node5\" class=\"node\">\n",
       "<title>5</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"168.43,-180 37.68,-180 37.68,-144 168.43,-144 168.43,-180\"/>\n",
       "<text text-anchor=\"middle\" x=\"103.06\" y=\"-156.95\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Caculating perimeter</text>\n",
       "</g>\n",
       "<!-- 4&#45;&gt;5 -->\n",
       "<g id=\"edge4\" class=\"edge\">\n",
       "<title>4&#45;&gt;5</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M103.06,-215.7C103.06,-208.41 103.06,-199.73 103.06,-191.54\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"106.56,-191.62 103.06,-181.62 99.56,-191.62 106.56,-191.62\"/>\n",
       "</g>\n",
       "<!-- 6 -->\n",
       "<g id=\"node6\" class=\"node\">\n",
       "<title>6</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"130.06,-108 76.06,-108 76.06,-72 130.06,-72 130.06,-108\"/>\n",
       "<text text-anchor=\"middle\" x=\"103.06\" y=\"-84.95\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">print</text>\n",
       "</g>\n",
       "<!-- 5&#45;&gt;6 -->\n",
       "<g id=\"edge5\" class=\"edge\">\n",
       "<title>5&#45;&gt;6</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M103.06,-143.7C103.06,-136.41 103.06,-127.73 103.06,-119.54\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"106.56,-119.62 103.06,-109.62 99.56,-119.62 106.56,-119.62\"/>\n",
       "</g>\n",
       "<!-- 7 -->\n",
       "<g id=\"node7\" class=\"node\">\n",
       "<title>7</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"130.06,-36 76.06,-36 76.06,0 130.06,0 130.06,-36\"/>\n",
       "<text text-anchor=\"middle\" x=\"103.06\" y=\"-12.95\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">end</text>\n",
       "</g>\n",
       "<!-- 6&#45;&gt;7 -->\n",
       "<g id=\"edge6\" class=\"edge\">\n",
       "<title>6&#45;&gt;7</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M103.06,-71.7C103.06,-64.41 103.06,-55.73 103.06,-47.54\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"106.56,-47.62 103.06,-37.62 99.56,-47.62 106.56,-47.62\"/>\n",
       "</g>\n",
       "</g>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<graphviz.graphs.Digraph at 0x24d7ff36ea0>"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import graphviz\n",
    "dot=graphviz.Digraph(comment='the round table',name=\"顺序结构\",node_attr={'shape': 'box'})\n",
    "dot.node('1','Start')\n",
    "dot.node('2','input Radius =?',shape='parallelogram')\n",
    "dot.node('3','Print Radius')\n",
    "dot.node('4','Caculating Area')\n",
    "dot.node('5','Caculating perimeter')\n",
    "dot.node('6','print')\n",
    "dot.node('7','end')\n",
    "dot.edges(['12','23','34','45','56','67'])\n",
    "dot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Ridus= 2\n",
      "面积和周长: 12.566 12.566\n"
     ]
    }
   ],
   "source": [
    "Radius = eval(input(\"请输入圆半径:\"))\n",
    "print(\"Ridus=\",Radius)\n",
    "Area = 3.1415*Radius*Radius\n",
    "perimeter  = 2*3.1415*Radius \n",
    "print(\"面积和周长:\",Area,perimeter)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id=section4></a>\n",
    "## 2.5分支结构\n",
    "### 2.5.1 Python比较运算符\n",
    "\n",
    "以下假设变量a为10，变量b为20：\n",
    "<table><tr>\n",
    "<th width=\"10%\">运算符</th><th>描述</th><th>实例</th>\n",
    "</tr>\n",
    "<tr>\n",
    "<td>==</td><td> 等于 - 比较对象是否相等</td><td> (a == b) 返回 False。 </td>\n",
    "</tr>\n",
    "<tr>\n",
    "<td>!=</td><td> 不等于 - 比较两个对象是否不相等</td><td> (a != b) 返回 True。 </td>\n",
    "</tr>\n",
    "\n",
    "<tr>\n",
    "<td>&gt;</td><td> 大于 - 返回x是否大于y</td><td> (a &gt; b) 返回 False。</td>\n",
    "</tr>\n",
    "<tr>\n",
    "<td>&lt;</td><td> 小于 - 返回x是否小于y。所有比较运算符返回1表示真，返回0表示假。这分别与特殊的变量True和False等价。注意，这些变量名的大写。</td><td> (a &lt; b) 返回 True。 </td>\n",
    "</tr>\n",
    "<tr>\n",
    "<td>&gt;=</td><td> 大于等于 - 返回x是否大于等于y。</td><td> (a &gt;= b) 返回 False。</td>\n",
    "\n",
    "</tr>\n",
    "<tr>\n",
    "<td>&lt;=</td><td> 小于等于 - 返回x是否小于等于y。</td><td> (a &lt;= b) 返回 True。 </td>\n",
    "</tr>\n",
    "</table>\n",
    "\n",
    "### 2.5.2 Python逻辑运算符        \n",
    "Python语言支持逻辑运算符，以下假设变量 a 为 10, b为 20:\n",
    "<table><tr>\n",
    "<th>运算符</th><th>逻辑表达式</th><th>描述</th><th>实例</th>\n",
    "</tr>\n",
    "<tr>\n",
    "<td>and</td><td>x and y</td><td> 布尔\"与\" - 如果 x 为 False，x and y 返回 x 的值，否则返回 y 的计算值。  </td><td> (a and b) 返回 20。</td>\n",
    "</tr>\n",
    "<tr>\n",
    "<td>or</td><td>x or y</td><td>布尔\"或\" - 如果 x 是 True，它返回 x 的值，否则它返回 y 的计算值。</td><td> (a or b) 返回 10。</td>\n",
    "</tr>\n",
    "<tr><td>not</td><td>not x</td><td>布尔\"非\" - 如果 x 为 True，返回 False 。如果 x 为 False，它返回 True。</td><td> not(a and b) 返回 False </td>\n",
    "</tr>\n",
    "</table>\n",
    "\n",
    "[返回](#backup)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.5.3 条件控制语句\n",
    "Python 条件语句是通过一条或多条语句的执行结果（True 或者 False）来决定执行的代码块。\n",
    "\n",
    "可以通过下图来简单了解条件语句的执行过程:\n",
    "\n",
    "<img src=\".//img//if-condition.jpg\" width=\"250\"></img>\n",
    "\n",
    "<img src=\".//img//python-if.webp\" width=\"150\"></img>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 例题 求绝对值。\n",
    "\n",
    "输入：x\n",
    "$$\n",
    "\\begin{align}\n",
    "&&\\left|y\\right |= \\left\\{\\begin{matrix}\n",
    "x & if \\: x\\geq 0\\\\-x& if \\:x< 0\n",
    "\\end{matrix}\\right.{\\color{Red} }\n",
    "\\end{align}\n",
    "$$\n",
    "输出：y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<!-- Generated by graphviz version 12.1.2 (20240928.0832)\n",
       " -->\n",
       "<!-- Title: 分支结构 Pages: 1 -->\n",
       "<svg width=\"420pt\" height=\"404pt\"\n",
       " viewBox=\"0.00 0.00 419.60 404.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 400)\">\n",
       "<title>分支结构</title>\n",
       "<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-400 415.6,-400 415.6,4 -4,4\"/>\n",
       "<!-- 1 -->\n",
       "<g id=\"node1\" class=\"node\">\n",
       "<title>1</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"232.8,-396 178.8,-396 178.8,-360 232.8,-360 232.8,-396\"/>\n",
       "<text text-anchor=\"middle\" x=\"205.8\" y=\"-371.82\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">开始</text>\n",
       "</g>\n",
       "<!-- 2 -->\n",
       "<g id=\"node2\" class=\"node\">\n",
       "<title>2</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"347.88,-324 121.87,-324 63.72,-288 289.74,-288 347.88,-324\"/>\n",
       "<text text-anchor=\"middle\" x=\"205.8\" y=\"-300.95\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">输入Real Number =?</text>\n",
       "</g>\n",
       "<!-- 1&#45;&gt;2 -->\n",
       "<g id=\"edge1\" class=\"edge\">\n",
       "<title>1&#45;&gt;2</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M205.8,-359.7C205.8,-352.41 205.8,-343.73 205.8,-335.54\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"209.3,-335.62 205.8,-325.62 202.3,-335.62 209.3,-335.62\"/>\n",
       "</g>\n",
       "<!-- 3 -->\n",
       "<g id=\"node3\" class=\"node\">\n",
       "<title>3</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"205.8,-252 0,-234 205.8,-216 411.6,-234 205.8,-252\"/>\n",
       "<text text-anchor=\"middle\" x=\"205.8\" y=\"-228.95\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">判断RealNumber是否大于0？</text>\n",
       "</g>\n",
       "<!-- 2&#45;&gt;3 -->\n",
       "<g id=\"edge2\" class=\"edge\">\n",
       "<title>2&#45;&gt;3</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M205.8,-287.7C205.8,-280.41 205.8,-271.73 205.8,-263.54\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"209.3,-263.62 205.8,-253.62 202.3,-263.62 209.3,-263.62\"/>\n",
       "</g>\n",
       "<!-- 4 -->\n",
       "<g id=\"node4\" class=\"node\">\n",
       "<title>4</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"195.68,-180 31.93,-180 31.93,-144 195.68,-144 195.68,-180\"/>\n",
       "<text text-anchor=\"middle\" x=\"113.8\" y=\"-156.95\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">RealNumber=RealNumber</text>\n",
       "</g>\n",
       "<!-- 3&#45;&gt;4 -->\n",
       "<g id=\"edge3\" class=\"edge\">\n",
       "<title>3&#45;&gt;4</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M185.38,-217.46C173.69,-208.56 158.75,-197.2 145.55,-187.16\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"148.03,-184.65 137.96,-181.38 143.79,-190.22 148.03,-184.65\"/>\n",
       "</g>\n",
       "<!-- 5 -->\n",
       "<g id=\"node5\" class=\"node\">\n",
       "<title>5</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"381.93,-180 213.68,-180 213.68,-144 381.93,-144 381.93,-180\"/>\n",
       "<text text-anchor=\"middle\" x=\"297.8\" y=\"-156.95\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">RealNumber=&#45;RealNumber</text>\n",
       "</g>\n",
       "<!-- 3&#45;&gt;5 -->\n",
       "<g id=\"edge4\" class=\"edge\">\n",
       "<title>3&#45;&gt;5</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M226.22,-217.46C237.92,-208.56 252.86,-197.2 266.05,-187.16\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"267.81,-190.22 273.65,-181.38 263.57,-184.65 267.81,-190.22\"/>\n",
       "</g>\n",
       "<!-- 6 -->\n",
       "<g id=\"node6\" class=\"node\">\n",
       "<title>6</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"301.15,-108 149.47,-108 110.45,-72 262.13,-72 301.15,-108\"/>\n",
       "<text text-anchor=\"middle\" x=\"205.8\" y=\"-83.83\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">输出绝对值</text>\n",
       "</g>\n",
       "<!-- 4&#45;&gt;6 -->\n",
       "<g id=\"edge5\" class=\"edge\">\n",
       "<title>4&#45;&gt;6</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M136.54,-143.7C147.82,-135.11 161.63,-124.61 173.95,-115.24\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"175.96,-118.1 181.8,-109.26 171.72,-112.53 175.96,-118.1\"/>\n",
       "</g>\n",
       "<!-- 5&#45;&gt;6 -->\n",
       "<g id=\"edge6\" class=\"edge\">\n",
       "<title>5&#45;&gt;6</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M275.06,-143.7C263.78,-135.11 249.97,-124.61 237.66,-115.24\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"239.88,-112.53 229.81,-109.26 235.64,-118.1 239.88,-112.53\"/>\n",
       "</g>\n",
       "<!-- 7 -->\n",
       "<g id=\"node7\" class=\"node\">\n",
       "<title>7</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"232.8,-36 178.8,-36 178.8,0 232.8,0 232.8,-36\"/>\n",
       "<text text-anchor=\"middle\" x=\"205.8\" y=\"-11.82\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">结束</text>\n",
       "</g>\n",
       "<!-- 6&#45;&gt;7 -->\n",
       "<g id=\"edge7\" class=\"edge\">\n",
       "<title>6&#45;&gt;7</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M205.8,-71.7C205.8,-64.41 205.8,-55.73 205.8,-47.54\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"209.3,-47.62 205.8,-37.62 202.3,-47.62 209.3,-47.62\"/>\n",
       "</g>\n",
       "</g>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<graphviz.graphs.Digraph at 0x24d205a8550>"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import graphviz\n",
    "dot=graphviz.Digraph(comment='the round table',name=\"分支结构\",node_attr={'shape': 'box'})\n",
    "dot.node('1','开始')\n",
    "dot.node('2','输入Real Number =?',shape='parallelogram')\n",
    "dot.node('3','判断RealNumber是否大于0？',shape='diamond')\n",
    "dot.node('4','RealNumber=RealNumber')\n",
    "dot.node('5','RealNumber=-RealNumber')\n",
    "dot.node('6','输出绝对值',shape='parallelogram')\n",
    "dot.node('7','结束')\n",
    "dot.edges(['12','23','34','35','46','56','67'])\n",
    "dot"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "求绝对值。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "绝对值: 1\n"
     ]
    }
   ],
   "source": [
    "\n",
    "RealNumber = eval(input(\"输入实数:\"))\n",
    "\n",
    "if (RealNumber < 0):\n",
    "    RealNumber = -RealNumber\n",
    "print(\"绝对值:\",RealNumber)\n"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id=section6></a>\n",
    "## 2.6循环结构\n",
    "\n",
    "循环结构：\n",
    "\n",
    "---while语句\n",
    "\n",
    "---for语句\n",
    "\n",
    "循环分类：  \n",
    "--- 当型循环  \n",
    "--- 直到型循环  \n",
    "\n",
    "\n",
    "\n",
    "\n",
    "[返回](#backup)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "True\n"
     ]
    }
   ],
   "source": [
    "char1 =\"a\"\n",
    "char2=\"b\"\n",
    "char3=\"c\"\n",
    "char=char1+char2+char3\n",
    "boor1=(char[2]==char3)\n",
    "print(boor1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 例题 整数累加：  \n",
    "输入：正整数R    \n",
    "处理：  \n",
    "S=1+2+3+…+R  \n",
    "<img src=\"./img/int_add.png\" width=\"150\">  \n",
    "输出：输出S"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "累加求和 1\n"
     ]
    }
   ],
   "source": [
    "R = eval(input(\"请输入正整数:\"))\n",
    "i, S = 0, 0\n",
    "while (i<=R):\n",
    "    S = S + i\n",
    "    i = i + 1\n",
    "print(\"累加求和\",S)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Python 提供了 for 循环和 while 循环（在 Python 中没有 do..while 循环）:\n",
    "\n",
    "<table><tr><th style=\"width:30%\">循环类型</th><th>描述</th></tr>\n",
    "<tr><td><a href=\"/python/python-while-loop.html\" title=\"Python WHILE 循环\">while 循环</a></td><td>在给定的判断条件为 true 时执行循环体，否则退出循环体。</td></tr>\n",
    "<tr><td><a href=\"/python/python-for-loop.html\" title=\" Python FOR 循环\">for 循环</a></td><td>重复执行语句</td></tr>\n",
    "<tr><td><a href=\"/python/python-nested-loops.html\" title=\"Python 循环全套\">嵌套循环</a></td><td>你可以在while循环体中嵌套for循环</td></tr>\n",
    "</table>\n",
    "\n",
    "### 循环控制语句\n",
    "循环控制语句可以更改语句执行的顺序。Python支持以下循环控制语句：\n",
    "<table><tr><th style=\"width:30%\">控制语句</th><th>描述</th></tr>\n",
    "<tr><td><a href=\"/python/python-break-statement.html\" title=\"Python break 语句\">break 语句</a></td><td>在语句块执行过程中终止循环，并且跳出整个循环</td></tr>\n",
    "<tr><td><a href=\"/python/python-continue-statement.html\" title=\"Python  语句\">continue 语句</a></td><td>在语句块执行过程中终止当前循环，跳出该次循环，执行下一次循环。</td></tr>\n",
    "<tr><td><a href=\"/python/python-pass-statement.html\" title=\"Python pass 语句\">pass 语句</a></td><td>pass是空语句，是为了保持程序结构的完整性。</td></tr>\n",
    "</table>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 例题 绘制数字图画\n",
    "   <img src=\".//img//jqm1.jpg\" width=\"150 \" alt=\"机器猫\">"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\",,,,,,,,,,,\"\"\"\"\"\"\"\"\"\"\"\"\"\"\",,,,,,,,,\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\",,,,,,,,,,,\"\"\"\"\"\"\"\"\"\"\"\"\"\"\",,,,,,,,,\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\",,\",,\",,\"\"\",,,\"\"\",,,\"\"\",\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\",,,,\",,,,\"\"\",,,\"\"\"\"\",,\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\",,,,,,\"\",,,\"\"\"\"\"\"\"\",,,,,,\"\"\",,,,\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\",,,,,\"\"\"\"\"\",,,\"\",,\"\"\"\"\"\"\"\",\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\",\"\"\",\"\",,,,\"\"\"\",\",,\"\"\",,,\",\"\",::,,,\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\",\"\",,,,,,,\"\"\",,\"^^\"\"\"\"\"\"\"\",,,\"\"\"^\",\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\",,,,\"^\"\"```'.'`\",,,,,^^`'.``^\",,\",,\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\",\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\",\"\"\"\"^``^ii-|xzJQOOOOO0LYx/]>,'''`^\"\",,,\"\"\"\"\"\"\"\"\"\"\",,\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\",,,\"\"\"\"\",\",,\"\"\"\"\"\",,^.`>1uQZZZQUcnrtttffjuXJQZwOz\\\\-:'`\"\":,\"\"\",,,\",\"\":,\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\",\"\",\"\"\"\"\",\"\"\"\",:\"\"`.l/JmZcf11-_+_+_______+~_-]{tzOObqv_\".`\",\"\",,^\"\"\"\"\",\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\":\"\",\"\"\"\"\",,\"\"^.^^?zmQr{++_??_]??????????-][---__??{nObO\\l``,,\"\",,\",,\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\",,,\"\"\",\"\",^'\"100mc}+_-?]]????????]?]--]]--?---????~_}vpqni  ^\"\"\",,\"\",\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\",,\"\"^,::\"^\"\"`^?0prr-~?]-??-+__-++?-?]-?--??-_]1)]+--??]-~?rmdrr:'^,,\",,\"\"\",,,\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\",,,\"\",\"\"\",\"'lXqx-++????]?~[nLL00x[~]_]]??]~1UbkbbQ||~]????__fwwd(^'\"\",^:\"\",,,\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\",\"\":\"\"\"\"'')qU?+-???-]?_-ubmzzxcmdn+??_]]_u*0/__{Lhhz_-?]?-]+--uhJ>.,,,\"\"\",,,\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\",\",,.IYw(+-???????-]Qp]`    '1bY+??++X*\\.     __dU+???]-???~{Oh('^,,,,,,,\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\",\",,\"\",\"\"\",,\"''<OL?_-]??????-_QO;        ikn~_rro)     .   ;wu~]???????__vov\"`\"\"\",,\"\",,\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\",\"\",,\"\"\"\",\"'??dv+-????????-+XO^  .   .   ?k{-bbr     .     >b(+]]??????]+|bQ:`,,,,\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\",\"\",\"\",,\"\".1ddj+?-]??????]-1p> ..    .    Uvrqq`  '       . xJ_??????]???+{qpl..\"\",,\"\",\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\",\"\"\"\"\",\"\"\"`1b//<??????]?--?~Cn  ..         _wp11         ... ;w1-??????]??]_-Qp>>',\"\",,\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\",,\"\",,\",\"\",.]b/~~]??]????]??-{wI .        .  ^qb;;    .        .Ux_??]??-?]??---0qqI',\"\",\",,\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\",,\",,,,\"\",.+kt~???-]??]?-]]]+nX . . .   .     Lm..        .   . /J_?-????]-????-_00m\"`:,^,,,\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\",,,,,\"\"\",\",`;mn_?]]-?-??????--_Cf  .            cJ   . .. .       [O_?--]]???]-?]----qC`^\":\",,,,,\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\",,,\"\"^^UC+?????-]????]_++-w]    . ..  ,1+  Xz  'jY~       .  -Z_?]?????-?]??]?--[hr'\"\",,\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\",\"\"\",\"\":\"./q]-??--??????+_1ccph<         ^CWh~ Cc  )##ql         _p(___??]?]?-??-?[[~/a['\"\",^,,,^,,,\"\"\"\"\n",
      "\"\"\"\"\",\"\"\"\"\"\"\":`!q\\+]?]]]-]??__tQkqqrm<   .     \\aXdv OU  CQ|kf  .      [kbqY|--+-??-?]-???]~zbI^,,,\"\",,\"\",\"\"\"\"\n",
      ",,,,,\"\"\"\"\"\",,\" UJ+???---?--_|maY?.. Q-     .   Qu /0Id0^^m[ x0  .      |L>|0kppu}~-[--?]????-pU.\"\",\"\"\",\"\",\"\"\"\"\n",
      ",,\"\",\"\"\"\"\",\"\"']q]-]-]?]]?-?UoJ>. ...J1.       `Z).?C?kq>>Q? /m`  .    .Cr   >rrpkz[+-]?-]]??+|k]`,\",,\"\":\"\"\"\"\"\"\n",
      "\"\",,\"\"\",,\",\"\"`Jr+]???]--~)dd?       rr        'ZY\"cXuuC||uC]ZL '      ,k+      ,/bkj--?]--??-+LZ\",,\"\",\",\",\"\"\"\"\n",
      "\"\",,\"\"\",,,,``]p1+~-??-__rhz\".       +Z.    .   vhmknZ\"}OO}hhot        jw....     :fhO}_?]]?-?~{h1 :\"\",,\"\",\"\"\"\"\n",
      ",,,,,\"\"\",\"\"''cdmCj[+_+xxo/          .Q1  .     <boXJr.,ww/fkL,      .:a1       .  .>0ht_--+-(c0hL\"^,,\",\",\"\"\"\"\"\n",
      ",,,,,\"\",,,`>>w)jJqwU\\rpp]    .       }q\"      . <}/hQOwddh~I^       .0L.  .  ..   . .jbr{{v0qZu/k['\"\"\",,\"\"\"\"\"\"\n",
      ",,,,\"\"\"\",\"'jjJ~+-[jJqomm_^            vQ\"        [kbJcXLLhb_      ,,Qp: .  .       . lQoppOu(-~+QJ',,\"\",,,\"\"\"\"\n",
      ",,\",\"\"\",,\"\"UUt_]?-<[pruuqqv[\". .   .  'YZ-.    <X*qrff)\\\\ubaX];\"!/ppQI.. ....     >\\LpYrbbn>--[~fd>^^,,,\"\"\"\"\"\"\n",
      "\"\",\"\"\"\"\",`>00]?]--?mU ..\"]Upqz-,.   '. .(wOzzz0mJbvfu?^>>tzhCwbpdZ))...`,:,\"...it0dOf>  11ot-?-??b\\..,,\",,\"\"\"\"\n",
      "\"\",,\"\"\"\"\"')JJ_???_up:   .  ,(CpwX11i:I\". ^]\\\\\\?`]djru[\">>rrb~^~_l    ,!li!i]rQQpQf>.      jh[?[?_JJ``\"\"\"\",,\"\"\"\n",
      "\"\"\",,\",\"\"'vuu+-??]b} .   ..\":I~|Jhhc!!>I.  .    \\qjrxx\\jjjrk]     '',!!ii;famnn]:..        C0+??+/pII^\"\"\",\"\"\"\"\n",
      "\"\"\",\",,\"^\"L//_??+YQ .   ..^l>iiIl__?!>!i:'    . [arjrrnnnjuai   ..^^iii!ii-}!III!\".        Ibf_?_{b??',,\",\"\"\"\"\n",
      "\"\"\",\",,\"^lO}}?]_}b?     .'\">!>[<]~~!]>>~!\".     ,hO/rrxttfkC.  .  II>!]_i]i~~ii-~I'  .  ... fd?-]?mff',,\",\"\"\"\"\n",
      "\"\"\"\"\",,\"`_0??-?+uZ.   ..  ;i!?[<{<<_{i[-i:. .. . {#Onrjvvddi.    'IIi>1>-}>}_ii{~l`. .      \"pj_?+CYY`\"\",\"\"\"\"\"\n",
      "\"\"\",\",\",'}0__--_m(       .`Il-i+-!![_<{>i:..  .   }popp**Oi      ';;i-[i}+>]i>>]!;`.         tZ~-+cOO^\"\",\"\"\"\"\"\n",
      "\"\"\",\",\",'|U--11\\p]i!ii!!l!>-???[]<<<>i~i!^..   .   ^{0k??..  .   .,,i<>>>i<<<___+i:,::,:::::,+b\\]?jppI^\",\"\"\"\"\"\n",
      "\"\"\",\",\",'/X??00qpZmwwqqqqqwqwppqp[[l!i!>;. ... .  .  zq  .     . .``li!ii!i+ZddwqmqwmqqwwwpmmZwmm{|dd!`,,\"\"\"\"\"\n",
      "\"\"\",\",\",'fY++}}Qu;lll!!!!!ll~-]}?~~>!>i:'..   '      zd^^   '  .  ..\";li>!II]??~+~+~+~~~++<~<>vZ{?(bb~`\",\"\"\"\"\"\n",
      "\"\"\",\",,,'tX++-_p{         .  .,\";IIlI:\"'           . Xd``  .        .'^^\",]XCcc]   .          ?q-+(bb+`\",\"\"\"\"\"\n",
      "\"\"\",\",\",'/U++-{p_       .    ...'''.'  ..            cq\"\"   .   .      .\"c*ZY00MQ^    .     . >d1_)dd_',,\"\"\"\"\"\n",
      "\"\"\",\",\",')U--+|dI   .     . _/nf1II.  .  ..   .    . vq``       .      ;mq_'.  -hU            :q/~)kk_`\"\",\"\"\"\"\n",
      "\"\"\",\",\",'}L--_\\q,        .>0aqOmpkkc:    . .         ud''         ..   [C\"      {*<    .   .  `mf~|dd>`,,\"\"\"\"\"\n",
      ",,,\"\",,\"`+0??+tq^        _kQ/)|))xxpq:  .  .         np``                  .    ^bt           'mj~/ddl^\"\",\"\"\"\"\n",
      ",,\"\"\"\",\"^I0[[+fm\"  .    IbY1(\\(\\/(()dz.              np''               .    .. '0n  .        'mr>rww:^\"\",\"\"\"\"\n",
      "\"\"\"\"\"\",,\"\"L||~tw^    .  Ym1|//|\\\\||(rbl   ..         xp``              .   ,;    pj         . \"wj<cQQ^\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\".cvv<(dI     !!kj|\\|\\\\\\\\\\\\|1q\\              xp``                ../kJJ|_d? .         ld\\+Jcc'\",,\"\"\"\"\"\n",
      "\"\"\"\",\"\"\"\"`)UU+1d<  .  11q\\\\\\/\\\\\\\\\\\\|(JJ  .           rp``              .   ^?xxLpbz[; .      .+b)-w\\\\',,,\"\"\"\"\"\n",
      "\"\"\"\",\"\"\"\"^>OO??p{.  `}kkC{\\\\\\(|\\|\\\\/(cm`             rp``               . .    ^qYuqpQt~''    1d?{k++`,\",,\"\"\"\"\n",
      "\"\"\"\",,\"\"\"\"\"CC/+Zt\"{Xmqwwbt(\\|j/\\\\\\\\\\|rw:  .          jp``                   .  |a; \"?nObwwc[: xZ~nZ::\",\"\",\"\"\"\"\n",
      ",,,,\"\"\"\"\",.jjJ<cpmmc{I``Lh/)(Zc||\\\\\\\\fd!.            jd``                    IIox     .!11XqqXwc<0z``\",\"\"\"\"\"\"\"\n",
      "\"\",\"\",\"\"\",`~~Z-tp-'     :0kj1pu(\\//||tdi             fp``       .   .       .CCw`.         `+nh|[k{''\"\",\",\"\"\"\"\n",
      ",,\"\"\"\"\"\"\",\"^^Jx-b+       \"0hvdj(\\\\\\\\|jp!   .         tp``                   u**>.           .)b+npI``:\"\",,\"\"\"\"\n",
      "\"\"\",,\"\"\"\"\":..[Z+Qc .. .. .^X*b/|\\||\\(rq: .           /p``                  /W}}           . .0U~mu'\"\"\",\"\"\"\"\"\"\"\n",
      "\"\"\",\"\"\"\"\",\"\"\"`Qf\\k: . ....  \\hm/1\\\\\\|xw^             /p``                 uW}      .    .. .~a)|h>^,,\",\",,\"\"\"\"\n",
      "\"\"\"\",,\"\"\"\"\",,'}w?p/. .    .  ~woY(())YQ  ..          \\p``               lL*}                zm~Oz'\"\"\":\"^,,\"\"\"\"\n",
      "\"\"\",,,,\"\"\",,,\"'Cunw\". ..  .  .`fabbv}Ln   .          \\p``             .(api             .. Ik\\\\o<`,\"\",,\"\",\"\"\"\"\n",
      "\"\"\",,,,\"\":^,,,'~Z1kt        .   iXXopd)              |d^^      .  .. ?O#v\"     .           Xm+wv.\":\"\"^,,\",\"\"\"\"\n",
      "\"\"\",,\"\"\"\"\",,,,,.fCrh;...           izkbu+'           |d^^        ,11w#C<                  +a)ud:^\"\"\"\",\",\"\"\"\"\"\"\n",
      "\"\"\",\"\"\"\"\",\"\"\"\"\"^\"LuwX.               ljpaqv[;;`      )d..    `!}YhaaU_            .     ..ZJ)a).\"\"\"\"\"\"\",\"\"\"\"\"\"\n",
      "\"\"\"\"\",,,\"\"\"\"\",\"\"'iZuh}..  .      ''  . '~xZkaaqCx|{?+nd[[}/nQqakQ(::               ..   //h{qU'^\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\",,\",\"\"\"\"\",,.1wJbII       .   .    '  ;]]fJmpbkkkbkkkqwUj?;  ..            ... .  >aarYq:^,,,\"\"\"\"\"\"\"\"\"\"\"\"\n",
      ",,\"\"\"\"\"\",,\",,\"\",,\".twwOO^  . .  .                ^:I!!<ll;\"                      . .  `wUUco_.,\"^,,,,,,,\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\",\",,,\"\",^\"\"'xqbbc.    .                     .        .                  .     zwvvh1.:\"\":\"\",,,,,\"\"\"\"\"\"\n",
      "\"\",\"\"\"\"\",\",\"\",\",,,\"\"`nkkou  '  .                     . ..            .               /hYhh\\.^\",^\",,,,\",,,\",\"\"\"\n",
      ",,\"\"\"\"\",,,\"\"\",\"\"\"\",,^`xxh*x  .             .                  .                     [hOhtt ,,\":,,,\",,,,,,\",\"\"\"\n",
      "\"\"\"\"\"\"\"\"\",\",,\"\",\",\",,^``/a*z\"             .     .                                  [khk|''\"\",\"\",\"\"\",,,\"\",\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\",,\"\",,\",^^.{q*0],                   .  .                 .  .       _bob['\"\"\"\"\"\"\"\"\"\",,,\",\",\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\",\":,,, (h0hqCt--I.            .            .          ..''ll-\\cboZ<'\"\"\"\"\"\"\"\"\",\",\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\":^^,,,.vq|fJqhoobZUj{+I^'''       .           .''\"I>-)tzCqkkakqYmC`\",\"\"\",\"\"\"\",\"\"\"\"\"\"\"\",\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\",,\"\"^`CoLuf/tuuXQmdbkbqZOOLUYzzurrjrrrrnccXUL0ZZwpbkbpmQYuuj/tndL'\"\"\"\"\",\"\"\",\",\"\"\"\"\"\"\",\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\",^\"\",,.nbcwhdOXnnf//tfxvXULL0ZwwqqqwqwwmwqqwZOQLUUzvnjf\\\\/jccUmbpqq_'\",,,,\"\"\",\",\",,\"\"\"\",\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\",,,\"''ta|~?(vCZbbdqZLUcxjf////(t\\tY0OwwOv\\|///\\\\//frncCOwwkddwUj1?Jk>'\"\",,,\"\"\"\",\",,\"\"\"\",\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"^,^'__ar_??++>n**x1xLZpkkdddqZZJYpOx())YbZYLQOmqppddbpZJman11----_-Od:^^\",,\"\"\"\",,,,\"\"\"\",\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\",qqJ~-???_/*//    `:<]1\\\\tnn0#0(]?--i_JbUcuj/||}_>,` ,OL__?????+{kY''^,,\"\"\"\",,,,\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\",\"\"\",,^'cpp?-??]-{hn..         ..   UqunvcccXvud] .      .    !acc+]?-?]+f#)).\",\"\"\",,,,,\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\",,\"^`~htt_?]??~Oq`  .           .-bjxuujuunj/CC'             too{_-]???_0pp;^\"\",,,\"\",,,\",,\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\",,\"\"\"\"\"\"\",'CQ++???[_t*+ ..         ..  fbYj[)c\\\\|zXjmI      .      ^ppC~]?-]?_)**j',,,\"\"\",,,,,,,,\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\",\"\"\",\"\"\",']h1++]???_pX.            ..  Xc^\"~QXJJ-,+cb~.         . . \\\\o)_??]??+UUkI`\"\"\",,\",,,,,,\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\"\"\"\"\",,\"\"`LJ_??-??+jo>                 uv,,jz.//J,:iq!   ..         ;;kY+]]-]--))hx'\"\",,\"\"\"\",,,\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\",\"\"\"\",\"'_k1_]]??-?OC.  ..             {w;:<CzQQ):,tZ'            .   Yd]-?-?]-__CkI^,,\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\",\"\"\"\"\"^`uO+?---?-{o[.                 ^px^,?p]]:,>h{  .        .  ...?o|_?]-??__to('\",,\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\",\"\"\",,^\";p/-???]?+vp^              ..   -aj,<Q\"\",-dv.       .  '      :dX+?-]?]???pQ^\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\",,\"\",\"\"`1p-??????_mv                     ?bmYqnnLhn.                   Jm?-??-]--+zo<^:^\"\"\"\",,,,\"\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\",\"\"\",\".XJ_-????-{b{ .                  . \"/J0QQn>  .                  fk[_]???]]+/at'\",\"\",,,\"\",,\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\"\",,,\"\"^;qj_??]]?_fk;   .             .        ..                       -o(+]-]-]]-]pQ^\",\"\",,,\"\",,\"\"\"\"\n",
      "\"\"\"\"\"\"\"\"\",\",,\"\"`_d)-?????_vw'                   .            .                  iht_???????-QpI\"\"\"\",,,\"\",,\"\"\"\"\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "<>:7: SyntaxWarning: invalid escape sequence '\\|'\n",
      "<>:7: SyntaxWarning: invalid escape sequence '\\|'\n",
      "C:\\Users\\史昊轩\\AppData\\Local\\Temp\\ipykernel_24712\\4091940313.py:7: SyntaxWarning: invalid escape sequence '\\|'\n",
      "  \"$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\\|()1{}[]?-_+~<>i!lI;:,\\\"^`'. \")\n"
     ]
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "show_heigth = 110\n",
    "show_width = 110\n",
    "#这两个数字是调出来的\n",
    "\n",
    "ascii_char = list(\n",
    "    \"$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\\|()1{}[]?-_+~<>i!lI;:,\\\"^`'. \")\n",
    "#生成一个ascii字符列表\n",
    "char_len = len(ascii_char)\n",
    "\n",
    "pic = plt.imread(\"..\\\\jqm1.jpeg\")\n",
    "#使用plt.imread方法来读取图像，对于彩图，返回size = heigth*width*3的图像\n",
    "#matplotlib 中色彩排列是R G B\n",
    "#opencv的cv2中色彩排列是B G R\n",
    "\n",
    "pic_heigth, pic_width, _ = pic.shape\n",
    "#获取图像的高、宽\n",
    "\n",
    "gray = 0.2126 * pic[:, :, 0] + 0.7152 * pic[:, :, 1] + 0.0722 * pic[:, :, 2]\n",
    "#RGB转灰度图的公式 gray = 0.2126 * r + 0.7152 * g + 0.0722 * b\n",
    "\n",
    "#思路就是根据灰度值，映射到相应的ascii_char\n",
    "for i in range(show_heigth):\n",
    "    #根据比例映射到对应的像素\n",
    "    y = int(i * pic_heigth / show_heigth)\n",
    "    text = \"\"\n",
    "    for j in range(show_width):\n",
    "        x = int(j * pic_width / show_width)\n",
    "        text += ascii_char[int(gray[y][x] / 256 * char_len)]\n",
    "    print(text)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "      *\n",
      "     ***\n",
      "    *****\n",
      "   *******\n",
      "  *********\n",
      " ***********\n",
      "*************\n",
      "  **\n",
      "  **\n"
     ]
    }
   ],
   "source": [
    "def print_tree(height):\n",
    "    # 绘制树冠部分\n",
    "    for i in range(height):\n",
    "        # 每一行先打印空格，使星号居中\n",
    "        print(' ' * (height - i - 1) + '*' * (2 * i + 1))\n",
    "    \n",
    "    # 绘制树干部分\n",
    "    trunk_width = height // 3\n",
    "    trunk_height = height // 3\n",
    "    trunk_space = (height - trunk_width) // 2\n",
    "    \n",
    "    for i in range(trunk_height):\n",
    "        print(' ' * trunk_space + '*' * trunk_width)\n",
    "\n",
    "# 调用函数并设置树的高度\n",
    "print_tree(7)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "         *         \n",
      "         *         \n",
      "          *        \n",
      "          *        \n",
      "           *       \n",
      "            *      \n",
      "            *      \n",
      "             *     \n",
      "             *     \n",
      "              *    \n",
      "              *    \n",
      "               *   \n",
      "               *   \n",
      "                *  \n",
      "                *  \n",
      "                 * \n",
      "                 * \n",
      "                 * \n",
      "                  *\n",
      "                  *\n",
      "                  *\n",
      "                  *\n",
      "                  *\n",
      "                  *\n",
      "                  *\n",
      "                  *\n",
      "                  *\n",
      "                  *\n",
      "                  *\n",
      "                  *\n",
      "                  *\n",
      "                  *\n",
      "                 * \n",
      "                 * \n",
      "                 * \n",
      "                *  \n",
      "                *  \n",
      "                *  \n",
      "               *   \n",
      "               *   \n",
      "              *    \n",
      "              *    \n",
      "             *     \n",
      "             *     \n",
      "            *      \n",
      "           *       \n",
      "           *       \n",
      "          *        \n",
      "         *         \n",
      "         *         \n",
      "         *         \n",
      "         *         \n",
      "        *          \n",
      "       *           \n",
      "       *           \n",
      "      *            \n",
      "     *             \n",
      "     *             \n",
      "    *              \n",
      "    *              \n",
      "   *               \n",
      "   *               \n",
      "  *                \n",
      "  *                \n",
      "  *                \n",
      " *                 \n",
      " *                 \n",
      " *                 \n",
      "*                  \n",
      "*                  \n",
      "*                  \n",
      "*                  \n",
      "*                  \n",
      "*                  \n",
      "*                  \n",
      "*                  \n",
      "*                  \n",
      "*                  \n",
      "*                  \n",
      "*                  \n",
      "*                  \n",
      "*                  \n",
      " *                 \n",
      " *                 \n",
      " *                 \n",
      "  *                \n",
      "  *                \n",
      "   *               \n",
      "   *               \n",
      "    *              \n",
      "    *              \n",
      "     *             \n",
      "     *             \n",
      "      *            \n",
      "      *            \n",
      "       *           \n",
      "        *          \n",
      "        *          \n",
      "         *         \n",
      "         *         \n"
     ]
    },
    {
     "data": {
      "image/png": "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sHHjRvt447916NCBH3/8kd27dxcYUvH3Xe1/XmN2djYff/zxRT+nV69eZGVlMXPmTJYuXcoDDzxQ5NciInI1dOdYRKQEjRgxgoyMDO69917q169PdnY2a9assd81HTRo0HV/hre3N1OmTOGhhx6iZcuW9O7dm4CAAI4cOcLixYvp2LEjH3300RXP06lTJ7766iuAAneOIb8cf/fdd/bj/rnfz8+PAQMG8MQTT2Aymfjqq68u+gMBQMuWLalduzbPPfccWVlZBYZUFOW1iIgUlsqxiEgJevvtt5k7dy4///wzn332GdnZ2VStWpXHH3+c559//qKLg1yLBx98kJCQEF5//XXeeustsrKyCA0N5YYbbih0Af+7HIeGhlKtWrUCr/2zLP+zHFesWJFFixYxatQonn/+efz8/OjXrx+33norkZGRF/2cXr168eqrr1K7dm1atmxZLNciIlJYJtulfpwXERERESlnNOZYREREROQ8lWMRERERkfNUjkVEREREzlM5FhERERE5T+VYREREROQ8lWMRERERkfM0z3ERsFqtnDhxAi8vL0wmk9FxRERERORfbDYbqamphISEYDZf+v6wynEROHHiBGFhYUbHEBEREZErOHr0KFWqVLnk6yrHRcDLywvI/2Z7e3sbnEZERERE/i0lJYWwsDB7b7sUleMi8PdQCm9vb5VjERERkVLsSkNg9UCeiIiIiMh5KsciIiIiIuepHIuIiIiInKdyLCIiIiJynsqxiIiIiMh5KsciIiIiIuepHIuIiIiInOdQ5XjVqlXcddddhISEYDKZ+PHHH6/4npUrV9KyZUtcXV2pXbs2M2bMuOCYyZMnU716ddzc3AgPDycqKqrow4uIiIhIqedQ5Tg9PZ1mzZoxefLkQh1/8OBBunXrRufOnYmOjuapp57i4Ycf5pdffrEfM3v2bEaOHMmECRPYvHkzzZo1IzIyklOnThXXZYiIiIhIKWWy2Ww2o0NcC5PJxPz58+nevfslj3n22WdZvHgx27Zts+/r3bs3SUlJLF26FIDw8HDatGnDRx99BIDVaiUsLIwRI0YwZsyYQmVJSUnBx8eH5ORkrZAnhrLZbCSfyyEuJZOsHCvZeVZycvP/mZ1rxWI24evhjK+HC34eLvi4O2MxX36lIBERkbKgsH2tTC8fvXbtWiIiIgrsi4yM5KmnngIgOzub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OVOnTqVv374A9O/fn61bt7JhwwZcXFwMTigiUvrpzrGISBlRt25dXn/9dUaMGMHJkyf56aefmDVrFl9++eUli/Gzzz5L3bp18fDwoGbNmowbN46cnBwAbDYbERERREZG8vd9lMTERKpUqcL48eOBC4dVHD58mLvuugs/Pz8qVKhAo0aN+Pnnn4v/4kVEioiT0QFERKTojBgxgvnz5/PQQw8RGxvL+PHjadas2SWP9/LyYsaMGYSEhBAbG8uQIUPw8vJi9OjRmEwmZs6cSZMmTfjggw948sknefTRRwkNDbWX438bNmwY2dnZrFq1igoVKrBjxw48PT2L63JFRIqchlWIiJQxu3btokGDBjRp0oTNmzfj5FT4+yBvv/02s2bNYuPGjfZ9c+fOpX///jz11FN8+OGHbNmyhTp16gD5d447d+7M2bNn8fX1pWnTpvTs2ZMJEyYU+XWJiJQEDasQESljpk+fjoeHBwcPHuTYsWMAPProo3h6etq3v82ePZuOHTsSHByMp6cnzz//PEeOHClwvvvvv597772X119/nbfffttejC/miSee4JVXXqFjx45MmDCBmJiY4rlIEZFionIsIlKGrFmzhnfffZdFixbRtm1bBg8ejM1m46WXXiI6Otq+Aaxdu5a+ffvStWtXFi1axJYtW3juuefIzs4ucM6MjAw2bdqExWJh7969l/38hx9+mAMHDtiHdbRu3ZoPP/ywuC5XRKTIqRyLiJQRGRkZDBw4kMcee4zOnTszbdo0oqKi+OSTTwgMDKR27dr2DfKLdLVq1Xjuuedo3bo1derU4fDhwxecd9SoUZjNZpYsWcIHH3zAb7/9dtkcYWFhPProo8ybN49Ro0YxderUYrleEZHioHIsIlJGjB07FpvNxuuvvw5A9erVefvttxk9ejSHDh264Pg6depw5MgRZs2axf79+/nggw+YP39+gWMWL17M9OnT+eabb7jtttt45plnGDBgAGfPnr1ohqeeeopffvmFgwcPsnnzZn7//XcaNGhQ5NcqIlJc9ECeiEgZ8Mcff3DrrbeycuVKOnXqVOC1yMhIcnNz+fXXXzGZTAVeGz16NNOnTycrK4tu3brRrl07XnjhBZKSkjh9+jRNmjThySefZOzYsQDk5OTQvn17atWqxezZsy94IG/EiBEsWbKEY8eO4e3tTZcuXXj33XepWLFiiX0vRESuh8qxiIiIiMh5GlYhIiIiInKeyrGIiIiIyHkqxyIiIiIi56kci4iIiIicp3IsIiIiInKeyrGIiIiIyHkqxyIiIiIi56kci4iIiIicp3IsIiIiInKeyrGIiIiIyHkqxyIiIiIi5/0fdGVdFBbJFPoAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 800x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "\n",
    "x = np.linspace(0, 2 * np.pi, 100)\n",
    "y = np.sin(x)\n",
    "\n",
    "# 使用matplotlib绘制图像\n",
    "plt.figure(figsize=(8, 4))\n",
    "plt.plot(x, y)\n",
    "plt.title('Sine Wave')\n",
    "plt.xlabel('X-axis')\n",
    "plt.ylabel('Y-axis')\n",
    "\n",
    "\n",
    "plt.savefig('sine_wave.png', dpi=300)\n",
    "\n",
    "\n",
    "def draw_sine_wave():\n",
    "    max_y = int(np.max(y) * 10)  整\n",
    "    min_y = int(np.min(y) * 10)\n",
    "    for i in range(len(x)):\n",
    "        y_val = int(y[i] * 10)\n",
    "        line = ''\n",
    "        for j in range(-max_y, max_y + 1):\n",
    "            if j == y_val:\n",
    "                line += '*'\n",
    "            else:\n",
    "                line += ' '\n",
    "        print(line)\n",
    "\n",
    "draw_sine_wave()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "      1      \n",
      "     1 1     \n",
      "    1 2 1    \n",
      "   1 3 3 1   \n",
      "  1 4 6 4 1  \n",
      "1 5 10 10 5 1\n"
     ]
    }
   ],
   "source": [
    "def print_pascal_triangle(n):\n",
    "    triangle = [[1]*(i+1) for i in range(n)]\n",
    "    \n",
    "    for i in range(2, n):\n",
    "        for j in range(1, i):\n",
    "            triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j]\n",
    "    \n",
    "    \n",
    "    max_width = len(\" \".join(str(x) for x in triangle[-1]))\n",
    "    \n",
    "    for row in triangle:\n",
    "        row_str = \" \".join(str(x) for x in row)\n",
    "        print(row_str.center(max_width))\n",
    "\n",
    "\n",
    "print_pascal_triangle(6)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<!-- Generated by graphviz version 12.1.2 (20240928.0832)\n",
       " -->\n",
       "<!-- Title: 分支结构 Pages: 1 -->\n",
       "<svg width=\"436pt\" height=\"676pt\"\n",
       " viewBox=\"0.00 0.00 436.02 675.50\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 671.5)\">\n",
       "<title>分支结构</title>\n",
       "<polygon fill=\"white\" stroke=\"none\" points=\"-4,4 -4,-671.5 432.02,-671.5 432.02,4 -4,4\"/>\n",
       "<!-- 1 -->\n",
       "<g id=\"node1\" class=\"node\">\n",
       "<title>1</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"331.01,-667.5 277.01,-667.5 277.01,-631.5 331.01,-631.5 331.01,-667.5\"/>\n",
       "<text text-anchor=\"middle\" x=\"304.01\" y=\"-643.33\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">开始</text>\n",
       "</g>\n",
       "<!-- 2 -->\n",
       "<g id=\"node2\" class=\"node\">\n",
       "<title>2</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"420.58,-594.5 235.15,-594.5 187.45,-558.5 372.87,-558.5 420.58,-594.5\"/>\n",
       "<text text-anchor=\"middle\" x=\"304.01\" y=\"-571.45\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">请输入成绩=?</text>\n",
       "</g>\n",
       "<!-- 1&#45;&gt;2 -->\n",
       "<g id=\"edge1\" class=\"edge\">\n",
       "<title>1&#45;&gt;2</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M304.01,-631.31C304.01,-623.73 304.01,-614.6 304.01,-606.04\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"307.51,-606.04 304.01,-596.04 300.51,-606.04 307.51,-606.04\"/>\n",
       "</g>\n",
       "<!-- 3 -->\n",
       "<g id=\"node3\" class=\"node\">\n",
       "<title>3</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"304.01,-521.5 180,-503.5 304.01,-485.5 428.02,-503.5 304.01,-521.5\"/>\n",
       "<text text-anchor=\"middle\" x=\"304.01\" y=\"-498.45\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">x是否大等于90?</text>\n",
       "</g>\n",
       "<!-- 2&#45;&gt;3 -->\n",
       "<g id=\"edge2\" class=\"edge\">\n",
       "<title>2&#45;&gt;3</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M304.01,-558.31C304.01,-550.73 304.01,-541.6 304.01,-533.04\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"307.51,-533.04 304.01,-523.04 300.51,-533.04 307.51,-533.04\"/>\n",
       "</g>\n",
       "<!-- 4 -->\n",
       "<g id=\"node4\" class=\"node\">\n",
       "<title>4</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"228.01,-433 104,-415 228.01,-397 352.02,-415 228.01,-433\"/>\n",
       "<text text-anchor=\"middle\" x=\"228.01\" y=\"-409.95\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">x是否大等于80?</text>\n",
       "</g>\n",
       "<!-- 3&#45;&gt;4 -->\n",
       "<g id=\"edge9\" class=\"edge\">\n",
       "<title>3&#45;&gt;4</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M290.42,-487.04C278.86,-473.87 262.07,-454.76 248.81,-439.67\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"251.71,-437.67 242.48,-432.47 246.45,-442.29 251.71,-437.67\"/>\n",
       "<text text-anchor=\"middle\" x=\"281.07\" y=\"-454.2\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">No</text>\n",
       "</g>\n",
       "<!-- a -->\n",
       "<g id=\"node7\" class=\"node\">\n",
       "<title>a</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"407.51,-379 352.51,-379 352.51,-343 407.51,-343 407.51,-379\"/>\n",
       "<text text-anchor=\"middle\" x=\"380.01\" y=\"-355.95\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Print A</text>\n",
       "</g>\n",
       "<!-- 3&#45;&gt;a -->\n",
       "<g id=\"edge8\" class=\"edge\">\n",
       "<title>3&#45;&gt;a</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M319.74,-487.33C332.59,-474.11 350.32,-453.82 361.01,-433 367.82,-419.74 372.37,-403.8 375.3,-390.39\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"378.68,-391.36 377.19,-380.87 371.81,-390 378.68,-391.36\"/>\n",
       "<text text-anchor=\"middle\" x=\"359.23\" y=\"-454.2\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Yes</text>\n",
       "</g>\n",
       "<!-- 5 -->\n",
       "<g id=\"node5\" class=\"node\">\n",
       "<title>5</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"175.01,-325 51,-307 175.01,-289 299.02,-307 175.01,-325\"/>\n",
       "<text text-anchor=\"middle\" x=\"175.01\" y=\"-301.95\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">x是否大等于70?</text>\n",
       "</g>\n",
       "<!-- 4&#45;&gt;5 -->\n",
       "<g id=\"edge11\" class=\"edge\">\n",
       "<title>4&#45;&gt;5</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M219.96,-397.9C211.56,-381.09 198.24,-354.45 188.27,-334.52\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"191.42,-332.98 183.81,-325.6 185.16,-336.11 191.42,-332.98\"/>\n",
       "<text text-anchor=\"middle\" x=\"217.61\" y=\"-355.95\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">No</text>\n",
       "</g>\n",
       "<!-- b -->\n",
       "<g id=\"node8\" class=\"node\">\n",
       "<title>b</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"356.51,-271 301.51,-271 301.51,-235 356.51,-235 356.51,-271\"/>\n",
       "<text text-anchor=\"middle\" x=\"329.01\" y=\"-247.95\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Print B</text>\n",
       "</g>\n",
       "<!-- 4&#45;&gt;b -->\n",
       "<g id=\"edge10\" class=\"edge\">\n",
       "<title>4&#45;&gt;b</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M245.14,-399.3C263.23,-382.9 291.38,-354.74 308.01,-325 315.34,-311.9 320.35,-295.97 323.64,-282.53\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"327.01,-283.48 325.76,-272.96 320.18,-281.96 327.01,-283.48\"/>\n",
       "<text text-anchor=\"middle\" x=\"305.53\" y=\"-355.95\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Yes</text>\n",
       "</g>\n",
       "<!-- 6 -->\n",
       "<g id=\"node6\" class=\"node\">\n",
       "<title>6</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"124.01,-217 0,-199 124.01,-181 248.02,-199 124.01,-217\"/>\n",
       "<text text-anchor=\"middle\" x=\"124.01\" y=\"-193.95\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">x是否大等于60?</text>\n",
       "</g>\n",
       "<!-- 5&#45;&gt;6 -->\n",
       "<g id=\"edge13\" class=\"edge\">\n",
       "<title>5&#45;&gt;6</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M167.27,-289.9C159.18,-273.09 146.36,-246.45 136.77,-226.52\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"139.98,-225.11 132.49,-217.61 133.67,-228.14 139.98,-225.11\"/>\n",
       "<text text-anchor=\"middle\" x=\"165.31\" y=\"-247.95\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">No</text>\n",
       "</g>\n",
       "<!-- c -->\n",
       "<g id=\"node9\" class=\"node\">\n",
       "<title>c</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"303.51,-163 248.51,-163 248.51,-127 303.51,-127 303.51,-163\"/>\n",
       "<text text-anchor=\"middle\" x=\"276.01\" y=\"-139.95\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Print C</text>\n",
       "</g>\n",
       "<!-- 5&#45;&gt;c -->\n",
       "<g id=\"edge12\" class=\"edge\">\n",
       "<title>5&#45;&gt;c</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M193.08,-291.18C211.77,-274.88 240.5,-247 257.01,-217 264.24,-203.86 268.84,-187.81 271.7,-174.3\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"275.09,-175.18 273.5,-164.71 268.21,-173.89 275.09,-175.18\"/>\n",
       "<text text-anchor=\"middle\" x=\"254.43\" y=\"-247.95\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Yes</text>\n",
       "</g>\n",
       "<!-- d -->\n",
       "<g id=\"node10\" class=\"node\">\n",
       "<title>d</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"166.89,-109 111.14,-109 111.14,-73 166.89,-73 166.89,-109\"/>\n",
       "<text text-anchor=\"middle\" x=\"139.01\" y=\"-85.95\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Print D</text>\n",
       "</g>\n",
       "<!-- 6&#45;&gt;d -->\n",
       "<g id=\"edge14\" class=\"edge\">\n",
       "<title>6&#45;&gt;d</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M126.42,-180.97C128.73,-164.69 132.24,-139.82 134.98,-120.52\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"138.41,-121.23 136.35,-110.84 131.48,-120.25 138.41,-121.23\"/>\n",
       "<text text-anchor=\"middle\" x=\"143.86\" y=\"-139.95\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Yes</text>\n",
       "</g>\n",
       "<!-- e -->\n",
       "<g id=\"node11\" class=\"node\">\n",
       "<title>e</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"245.14,-109 190.89,-109 190.89,-73 245.14,-73 245.14,-109\"/>\n",
       "<text text-anchor=\"middle\" x=\"218.01\" y=\"-85.95\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">Print E</text>\n",
       "</g>\n",
       "<!-- 6&#45;&gt;e -->\n",
       "<g id=\"edge15\" class=\"edge\">\n",
       "<title>6&#45;&gt;e</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M139.14,-182.89C145.12,-176.8 151.98,-169.65 158.01,-163 171.22,-148.43 185.45,-131.64 196.74,-118.04\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"199.4,-120.32 203.07,-110.38 194,-115.86 199.4,-120.32\"/>\n",
       "<text text-anchor=\"middle\" x=\"196.26\" y=\"-139.95\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">No</text>\n",
       "</g>\n",
       "<!-- 7 -->\n",
       "<g id=\"node12\" class=\"node\">\n",
       "<title>7</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" points=\"303.01,-36 249.01,-36 249.01,0 303.01,0 303.01,-36\"/>\n",
       "<text text-anchor=\"middle\" x=\"276.01\" y=\"-11.82\" font-family=\"Times New Roman,serif\" font-size=\"14.00\">结束</text>\n",
       "</g>\n",
       "<!-- a&#45;&gt;7 -->\n",
       "<g id=\"edge3\" class=\"edge\">\n",
       "<title>a&#45;&gt;7</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M378.7,-342.75C377.22,-321.79 375.01,-285.32 375.01,-254 375.01,-254 375.01,-254 375.01,-90 375.01,-58.72 341.98,-39.89 314.08,-29.56\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"315.35,-26.3 304.76,-26.38 313.09,-32.92 315.35,-26.3\"/>\n",
       "</g>\n",
       "<!-- b&#45;&gt;7 -->\n",
       "<g id=\"edge4\" class=\"edge\">\n",
       "<title>b&#45;&gt;7</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M327.05,-234.9C324.14,-210.72 318.12,-165.22 310.01,-127 303.03,-94.09 300.72,-85.89 290.01,-54 289.25,-51.72 288.41,-49.38 287.55,-47.03\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"290.81,-45.77 283.93,-37.71 284.29,-48.3 290.81,-45.77\"/>\n",
       "</g>\n",
       "<!-- c&#45;&gt;7 -->\n",
       "<g id=\"edge5\" class=\"edge\">\n",
       "<title>c&#45;&gt;7</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M276.01,-126.62C276.01,-106.19 276.01,-71.99 276.01,-47.62\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"279.51,-47.75 276.01,-37.75 272.51,-47.75 279.51,-47.75\"/>\n",
       "</g>\n",
       "<!-- d&#45;&gt;7 -->\n",
       "<g id=\"edge6\" class=\"edge\">\n",
       "<title>d&#45;&gt;7</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M167.07,-75.46C187.84,-64.7 216.34,-49.92 238.99,-38.19\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"240.32,-41.44 247.58,-33.73 237.1,-35.23 240.32,-41.44\"/>\n",
       "</g>\n",
       "<!-- e&#45;&gt;7 -->\n",
       "<g id=\"edge7\" class=\"edge\">\n",
       "<title>e&#45;&gt;7</title>\n",
       "<path fill=\"none\" stroke=\"black\" d=\"M232.05,-72.81C238.89,-64.44 247.26,-54.2 254.85,-44.9\"/>\n",
       "<polygon fill=\"black\" stroke=\"black\" points=\"257.53,-47.16 261.14,-37.2 252.11,-42.73 257.53,-47.16\"/>\n",
       "</g>\n",
       "</g>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<graphviz.graphs.Digraph at 0x1af97a40ad0>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import graphviz\n",
    "dot=graphviz.Digraph(comment='the round table',name=\"分支结构\",node_attr={'shape':'box'})\n",
    "dot.node('1','开始')\n",
    "dot.node('2','请输入成绩=?', shape='parallelogram')\n",
    "dot.node('3','x是否大等于90?', shape='diamond')\n",
    "dot.node('4','x是否大等于80?', shape='diamond')\n",
    "dot.node('5','x是否大等于70?', shape='diamond')\n",
    "dot.node('6','x是否大等于60?', shape='diamond')\n",
    "dot.node('a','Print A')\n",
    "dot.node('b','Print B')\n",
    "dot.node('c','Print C')\n",
    "dot.node('d','Print D')\n",
    "dot.node('e','Print E')\n",
    "dot.node('7','结束')\n",
    "dot.edges(['12','23','a7','b7','c7','d7','e7'])\n",
    "dot.edge('3','a',label='Yes')\n",
    "dot.edge('3','4',label='No')\n",
    "dot.edge('4','b',label='Yes')\n",
    "dot.edge('4','5',label='No')\n",
    "dot.edge('5','c',label='Yes')\n",
    "dot.edge('5','6',label='No')\n",
    "dot.edge('6','d',label='Yes')\n",
    "dot.edge('6','e',label='No')\n",
    "dot"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# ! pip install -i http源\n",
    "新版ubuntu要求使用https源，要注意。\n",
    "\n",
    "清华：https://pypi.tuna.tsinghua.edu.cn/simple\n",
    "\n",
    "阿里云：https://mirrors.aliyun.com/pypi/simple/\n",
    "\n",
    "中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/\n",
    "\n",
    "华中理工大学：https://pypi.hustunique.com/\n",
    "\n",
    "山东理工大学：https://pypi.sdutlinux.org/ \n",
    "\n",
    "豆瓣：https://pypi.douban.com/simple/\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.13.0"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
